前言
目前Java版本的Date类中已经逐步抛弃getDate()、getDay()的方法了,取而代之的是Calendar类的get()方法。所以在这边对Date类和Calendar类做一个总结。
Date类
这个类的来源非常的古老,从JDK1.0就有了,但是因为后面不支持国际化,Java逐渐向Calendar类倾斜了。
先来谈一下Date类的使用
获取当前的时间
1 2
| Date date = new Date(); System.out.println(date);
|
结果为:
1
| Thu Jun 28 19:24:32 CST 2018
|
获取分钟、小时、天、月、年等信息
这类方法现在已经被JDK所放弃了,但考虑但老业务,还是继续提供接口的,不推荐大家用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Date date = new Date(); System.out.println(date);
System.out.println(date.getYear() + 1900);
System.out.println(date.getMonth() + 1);
System.out.println(date.getDate());
System.out.println(date.getHours());
System.out.println(date.getMinutes());
System.out.println(date.getSeconds());
System.out.println(date.getTime());
|
结果为
1 2 3 4 5 6 7 8
| Thu Jun 28 19:47:03 CST 2018 2018 6 28 19 47 3 1530186423092
|
Date类的格式化
我们经常用的格式是"yyyy-MM-dd HH:mm:ss"而Date类该怎么转呢
1 2 3 4 5 6 7 8 9 10 11
| Date date = new Date(); System.out.println(date); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(date)); try { System.out.println(sdf.parse("2018-06-28 19:55:42")); } catch (ParseException e) { e.printStackTrace(); }
|
结果为:
1 2 3
| Thu Jun 28 19:58:46 CST 2018 2018-06-28 19:58:46 Thu Jun 28 19:55:42 CST 2018
|
Calendar类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| Date date = new Date(); Calendar calendar = Calendar.getInstance(); calendar.setTime(date); System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date));
System.out.println(calendar.get(Calendar.YEAR));
System.out.println(calendar.get(Calendar.MONTH));
System.out.println(calendar.get(Calendar.DAY_OF_MONTH));
System.out.println(calendar.get(Calendar.HOUR_OF_DAY));
System.out.println(calendar.get(Calendar.MINUTE));
System.out.println(calendar.get(Calendar.SECOND));
|
结果输出为:
1 2 3 4 5 6 7
| 2018-07-23 15:28:55 2018 6 23 15 28 55
|