三者的关系
Date类已经过时,被Calendar类取代。
SimpleDateFormat类负责时间格式的字符串和Date类之间的转换。
Date
//实例化date对象
Date date = new Date();
/*
1、时间转字符串
输出:Wed Dec 09 09:46:59 CST 2020
*/
System.out.println(date.toString());
/*
2、输出Date对象
输出:Wed Dec 09 09:46:59 CST 2020
*/
System.out.println(date);
/*
3、获取当前时间的1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点
输出:1607478419488
*/
System.out.println(date.getTime());
/*
4、设置时间,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。
输出:Wed Dec 09 09:46:59 CST 2020
*/
date.setTime(1607478419488L);
//实例化date1对象
Date date1 = new Date();
date1.setTime(1607478419487L);
/*
5、测试此日期是否在指定日期之后
输出:true
*/
System.out.println(date.after(date1));
/*
6、测试此日期是否在指定日期之前
输出:false
*/
System.out.println(date.before(date1));
/*
7、比较两个日期的顺序。(比较两个日期是否相等)
输出:false
*/
System.out.println(date.equals(date1));
Calendar
public static void main(String[] args) {
/*
calendar对象有年、月、日、时、分、秒字段,可以set,也可以get。
*/
//实例化对象
Calendar calendar = Calendar.getInstance();
/*
1、设置时间(月份设置1,就相当于2月)
*/
calendar.set(2020, 2, 11, 12, 10, 2);
/*
2、输出时间
结果:Wed Mar 11 12:12:12 CST 2020
*/
System.out.println(calendar.getTime());
/*
3、输出分钟(月份等字段也是如此)
输出:12
*/
System.out.println(calendar.get(Calendar.MINUTE));
/*
4、月份加上某个值(年份等字段也是如此)
输出:Mon May 11 12:12:12 CST 2020
*/
calendar.add(Calendar.MONTH, 2);
System.out.println(calendar.getTime());
/*
5、清除月份的值(年份等字段也是如此)
输出:Sat Jan 11 12:12:12 CST 2020
*/
calendar.clear(Calendar.MONTH);
System.out.println(calendar.getTime());
/*
6、清除所有字段的值(年月日等六个字段)
结果:Thu Jan 01 00:00:00 CST 1970
*/
calendar.clear();
System.out.println(calendar.getTime());
/*
7、比较两个时间对象
before A的时间在B的时间之前,那么A.before(B)返回true
after A的时间在B时间之后,那么A.after(B)返回true
equals A的时间和B时间相等,那么A.equals(B)返回true
*/
calendar = Calendar.getInstance();
/*
8、该日期是一年中第几天
*/
System.out.println(calendar.get(Calendar.DAY_OF_YEAR));
/*
9、该日期是一年中第几个星期
*/
System.out.println(calendar.get(Calendar.WEEK_OF_YEAR));
}
SimpleDateFormat
public static void main(String[] args) {
//实例化对象,具体的时间格式,参考代码下方图片
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
/*
1、format的作用
从Date对象转换成自定义时间格式的字符串
输出:2020-12-15 13:50:54
*/
String a = simpleDateFormat.format(new Date());
System.out.println(a);
/*
2、parse的作用
从自定义时间格式的字符串转换成Date对象
输出:1577598654000(毫秒格式)
*/
try {
Date date = simpleDateFormat.parse("2020-12-15 13:50:54");
System.out.println(date.getTime());
} catch (ParseException e) {
e.printStackTrace();
}
}