目录
一、java.util.Date实例化介绍
一)、Date对象实例化
二)设置Date对象指定日期 :
三)将日期格式化输出为中文状态
二、方法介绍
三、方法演示
一、java.util.Date实例化介绍
一)、Date对象实例化
//使用无参构造器
Date date1 = new Date();
System.out.println(date1);//使用有参构造器,参数为long类型的时间戳,将时间戳自动转为时间对象
Date date2 = new Date(60000);
System.out.println(date2);
运行结果:
二)设置Date对象指定日期 :
1、实例化对象时设置时间:
//使用有参构造器实例化对象
Date date4 = new Date(2023 - 1900, 6 - 1, 5, 6, 2, 4);
Date date5 = new Date(2023-1900, 6 - 1, 5);
System.out.println(date4);
System.out.println(date5);
运行结果展示:
以上两种是传入参数,我们还可以用时间字符串来进行设置Date对象的时间值
1)使用特定的格式进行实例化并指定时间:
在使用此方法时必须按照“年/月/日 时:分:秒”此种顺序和格式,例如:
Date date1= new Date("2023/6/16 11:40:00");
System.out.println(date1);
运行结果展示:
2、使用格式化工具进行时间Date时间设置
Date date1= new Date();
Date date2= new Date();//声名两个格式化工具,并且设置格式化字符串格式
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//因为在格式化时,如果不按照指定格式进行输入无法进行格式化会出现异常,所以用try-catch处理异常
try {date1 = sdf1.parse("2023年06月16日 19:17:00");date2 = sdf2.parse("2023-06-16 19:17:00");
}catch (Exception ignored){}System.out.println(date1);
System.out.println(date2);
运行结果展示:
三)将日期格式化输出为中文状态
以上输出均为英文状态下的,当然我们可以是用日期格式话使输出为中文状态,例:
Date date = new Date();
//格式化输出
System.out.printf("%tF %<tT",date);
输出结果展示:
二、方法介绍
方法 | 描述 |
boolean after(Date when) | 判断此日期是否在指定日期之后 |
boolean before(Date when) | 判断此日期是否在指定日期之前 |
int compareTo(Date anotherDate) | 比较两个日期的顺序(返回值为-1代表日期从小到大,返回值为1代表日期从大到小) |
boolean equals(Object obj) | 比较两个日期的相等性 |
long getTime() | 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来,此 Date 对象表示的毫秒数 |
String toString() | 把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy 。 其 中 dow 是一周中的某一天 (Sun 、 Mon 、 Tue 、 Wed 、 Thu 、 Fri 及 Sat) |
三、方法演示
1、boolean after(Date when)方法,判断此日期是否在指定日期之后:
//从格林尼治时间1970年1月1日 00:00:00开始往后推60000毫秒
Date date2 = new Date(60000);
System.out.println(date2);//System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());System.out.println(date3);
ystem.out.println(date2.after(date3));
运行结果:
2、 boolean before(Date when)方法,判断此日期是否在指定日期之前:
Date date2 = new Date(60000);
System.out.println(date2);//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());System.out.println(date3);
System.out.println(date2.before(date3));
运行结果:
3、int compareTo(Date anotherDate)方法,比较两个日期的顺序(返回值为-1代表日期从小到大,返回值为1代表日期从大到小):
Date date2 = new Date(60000);
System.out.println(date2);//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());System.out.println(date3);
System.out.println(date2.compareTo(date3));
运行结果:
4、boolean equals(Object obj)方法,比较两个日期的相等性:
Date date2 = new Date(60000);
System.out.println(date2);//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());System.out.println(date3);
System.out.println(date2.equals(date3));
注:时间戳是从1970年1月1日开始累计到指定时间的毫秒数
运行结果:
5、long getTime()方法,如果Date对象没有指定时间则返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数,如果Date对象指定时间则返回指定时间的时间戳(从1970年1月1日开始累计到指定时间的毫秒数):
//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());
Date date6 = new Date("2023/6/16 11:40:00");
System.out.println(date3.toString());
System.out.println(date6.getTime());
运行结果:
6、String toString()方法,把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy。 其 中 dow 是一周中的某一天(Sun、Mon、Tue、Wed、Thu、Fri 及 Sat):
//(System.currentTimeMillis()获得当前系统时间戳
Date date3 = new Date(System.currentTimeMillis());
System.out.println(date3);
System.out.println(date3.toString());
运行结果:
此方法和直接输出Date对象的结果没有任何差异,因此在使用时我们很少使用。