首页编程java编程java new date()什么意思 java中Date类中的Date(String s)构造方法如何使用

java new date()什么意思 java中Date类中的Date(String s)构造方法如何使用

编程之家 2023-10-14 96次浏览

大家好,关于java new date()什么意思很多朋友都还不太明白,今天小编就来为大家分享关于java中Date类中的Date(String s)构造方法如何使用的知识,希望对各位有所帮助!

java new date()什么意思 java中Date类中的Date(String s)构造方法如何使用

java中Date类中的Date(String s)构造方法如何使用

new Date(s):分配 Date对象并初始化此对象,以表示字符串 s指出的日期和时间

格式可以是:1970年 1月 1日,00:00:00 GMT

它接受许多语法;特别是它识别 IETF标准日期语法:"Sat, 12 Aug 1995 13:30:00

java new date()什么意思 java中Date类中的Date(String s)构造方法如何使用

GMT"。它也了解美国大陆时区缩写,但对于一般用途,应该使用时区偏移量:"Sat, 12 Aug 1995 13:30:00

GMT+0430"(比格林威治子午线晚 4小时 30分)。如果没有指定时区,则假定用本地时区。GMT和 UTC被认为是相同的。

或者把双引号去掉,就是以毫秒形式表示的日期了

java new date()什么意思 java中Date类中的Date(String s)构造方法如何使用

Date(long date)

分配 Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即 1970年 1月 1日

00:00:00 GMT)以来的指定毫秒数

java new Date取得是以什么时间为准

数据库默认时区与服务器上不一致。如果服务器时间是你想要的,那么就是数据库时区未设置。一般情况下安装中文版的就会默认给你默认设置为东八区,应该没有问题。我先前这个中间还用了一个中间件才到数据库,但是前台增加与显示结果也都没问题(中间件会负责解析)。这种情况跟客户端一点关系都没有(除非你的Date是JS中的Date那就有关系了)

java计算两个日期之间的天数

在Java开发物流或是其他功能的时候会用到两个日期相差多天的数据,所以整理了一下备用。

调用方式:

代码如下复制代码

long date1= getDateTime("20121201");//可改成自己的日期类型,但以“20121212”这种格式

long date2= getDateTime("20121212");

int day= dateInterval(date1, date2);

System.out.println(day);

具体实现方法调用:

代码如下复制代码

/**

*计算出两个日期之间相差的天数

*建议date1大于 date2这样计算的值为正数

*@param date1日期1

*@param date2日期2

*@return date1- date2

*/

public static int dateInterval(long date1, long date2){

if(date2> date1){

date2= date2+ date1;

date1= date2- date1;

date2= date2- date1;

}

// Canlendar该类是一个抽象类

//提供了丰富的日历字段

//本程序中使用到了

// Calendar.YEAR日期中的年份

// Calendar.DAY_OF_YEAR当前年中的天数

// getActualMaximum(Calendar.DAY_OF_YEAR)返回今年是 365天还是366天

Calendar calendar1= Calendar.getInstance();//获得一个日历

calendar1.setTimeInMillis(date1);//用给定的 long值设置此 Calendar的当前时间值。

Calendar calendar2= Calendar.getInstance();

calendar2.setTimeInMillis(date2);

//先判断是否同年

int y1= calendar1.get(Calendar.YEAR);

int y2= calendar2.get(Calendar.YEAR);

int d1= calendar1.get(Calendar.DAY_OF_YEAR);

int d2= calendar2.get(Calendar.DAY_OF_YEAR);

int maxDays= 0;

int day= 0;

if(y1- y2> 0){

day= numerical(maxDays, d1, d2, y1, y2, calendar2);

}else{

day= d1- d2;

}

return day;

}

/**

*日期间隔计算

*计算公式(示例):

* 20121201- 20121212

*取出20121201这一年过了多少天 d1=天数取出20121212这一年过了多少天 d2=天数

*如果2012年这一年有366天就要让间隔的天数+1,因为2月份有29日。

*@param maxDays用于记录一年中有365天还是366天

*@param d1表示在这年中过了多少天

*@param d2表示在这年中过了多少天

*@param y1当前为2012年

*@param y2当前为2012年

*@param calendar根据日历对象来获取一年中有多少天

*@return计算后日期间隔的天数

*/

public static int numerical(int maxDays, int d1, int d2, int y1, int y2, Calendar calendar){

int day= d1- d2;

int betweenYears= y1- y2;

List<Integer> d366= new ArrayList<Integer>();

if(calendar.getActualMaximum(Calendar.DAY_OF_YEAR)== 366){

System.out.println(calendar.getActualMaximum(Calendar.DAY_OF_YEAR));

day+= 1;

}

for(int i= 0; i< betweenYears; i++){

//当年+ 1设置下一年中有多少天

calendar.set(Calendar.YEAR,(calendar.get(Calendar.YEAR))+ 1);

maxDays= calendar.getActualMaximum(Calendar.DAY_OF_YEAR);

//第一个 366天不用+ 1将所有366记录,先不进行加入然后再少加一个

if(maxDays!= 366){

day+= maxDays;

}else{

d366.add(maxDays);

}

//如果最后一个 maxDays等于366 day- 1

if(i== betweenYears-1&& betweenYears> 1&& maxDays== 366){

day-= 1;

}

}

for(int i= 0; i< d366.size(); i++){

//一个或一个以上的366天

if(d366.size()>= 1){

day+= d366.get(i);

}

}

return day;

}

/**

*将日期字符串装换成日期

*@param strDate日期支持年月日示例:yyyyMMdd

*@return 1970年1月1日器日期的毫秒数

*/

public static long getDateTime(String strDate){

return getDateByFormat(strDate,"yyyyMMdd").getTime();

}

/**

*@param strDate日期字符串

*@param format日期格式

*@return Date

*/

public static Date getDateByFormat(String strDate, String format){

SimpleDateFormat sdf= new SimpleDateFormat(format);

try{

return(sdf.parse(strDate));

}catch(Exception e){

return null;

}

}

例2

代码如下复制代码

import java.text.ParseException;

import java.text.SimpleDateFormat;

import java.util.Calendar;

import java.util.Date;

public class test16{

/**

*@param args

*@throws ParseException

*/

public static void main(String[] args) throws ParseException{

// TODO Auto-generated method stub

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

Date d1=sdf.parse("2012-09-08 10:10:10");

Date d2=sdf.parse("2012-09-15 00:00:00");

System.out.println(daysBetween(d1,d2));

System.out.println(daysBetween("2012-09-08 10:10:10","2012-09-15 00:00:00"));

}

/**

*计算两个日期之间相差的天数

*@param smdate较小的时间

*@param bdate较大的时间

*@return相差天数

*@throws ParseException

*/

public static int daysBetween(Date smdate,Date bdate) throws ParseException

{

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

smdate=sdf.parse(sdf.format(smdate));

bdate=sdf.parse(sdf.format(bdate));

Calendar cal= Calendar.getInstance();

cal.setTime(smdate);

long time1= cal.getTimeInMillis();

cal.setTime(bdate);

long time2= cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

/**

*字符串的日期格式的计算

*/

public static int daysBetween(String smdate,String bdate) throws ParseException{

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");

Calendar cal= Calendar.getInstance();

cal.setTime(sdf.parse(smdate));

long time1= cal.getTimeInMillis();

cal.setTime(sdf.parse(bdate));

long time2= cal.getTimeInMillis();

long between_days=(time2-time1)/(1000*3600*24);

return Integer.parseInt(String.valueOf(between_days));

}

}

例3

代码如下复制代码

//取得剩余天数

SimpleDateFormat df=new SimpleDateFormat("yyyymmdd");

Date d0=new java.util.Date();

Date d1=df.parse(end_date);

long time0=d0.getTime();

long time1=d1.getTime();

System.out.println((time1-time0)/(1000*60*60*24));

这样算两个时间相差的天数比较好

代码如下复制代码

/**

*计算两个日期之间相差的天数

*

*@param date1

*@param date2

*@return

*/

public static int diffdates(Date date1, Date date2){

int result= 0;

ElapsedTime et= new ElapsedTime();

GregorianCalendar gc1= new GregorianCalendar();

GregorianCalendar gc2= new GregorianCalendar();

gc1.setTime(date1);

gc2.setTime(date2);

result= et.getDays(gc1, gc2);

return result;

}

然后ElapseTime中的方法是:

代码如下复制代码

public int getDays(GregorianCalendar g1, GregorianCalendar g2){

int elapsed= 0;

GregorianCalendar gc1, gc2;

if(g2.after(g1)){

gc2=(GregorianCalendar) g2.clone();

gc1=(GregorianCalendar) g1.clone();

} else{

gc2=(GregorianCalendar) g1.clone();

gc1=(GregorianCalendar) g2.clone();

}

gc1.clear(Calendar.MILLISECOND);

gc1.clear(Calendar.SECOND);

gc1.clear(Calendar.MINUTE);

gc1.clear(Calendar.HOUR_OF_DAY);

gc2.clear(Calendar.MILLISECOND);

gc2.clear(Calendar.SECOND);

gc2.clear(Calendar.MINUTE);

gc2.clear(Calendar.HOUR_OF_DAY);

while(gc1.before(gc2)){

gc1.add(Calendar.DATE, 1);

elapsed++;

}

return elapsed;

}

其实使用joda最简单

代码如下复制代码

public boolean isRentalOverdue(DateTime datetimeRented){

Period rentalPeriod= Period.days(2);

return datetimeRented.plus(rentalPeriod).isBeforeNow()

}

在java中,类名 x = new类名(); 后面这个new类名是什么意思

“对象名=new类名()”意思是创建名称为“对象名”的“类名”类引用变量。

“new类名()”就是说以无参数构造方法实例化对象。

java的new关键字想必大家都知道这是实例化一个对象,也是为新对象分配内存空间。

比如new MyDate(22,7,1964)这样一个案例,完成需要四部:

一、为新对象分配内存空间,将MyDate存储到堆。

二、执行显示的初始化。

三、执行构造器。new方法中括号参数传递给构造器,出书话该对象数值。

四、该变量被赋值为堆内存中新对象的引用。

关于java new date()什么意思的内容到此结束,希望对大家有所帮助。

java class是什么 JAVA 类名.class是什么意思 java 什么叫对象 其组成是什么?java类和对象的关系是什么