在学习SpringMVC时,遇到了接收时间日期类型的参数的案例。
回顾JDK中与时间日期相关的API。
来系统地学习一下日期时间相关的API。
在世界上有统一的时间标准
Date类是JDK中提供的一个时间类,用来描述时间,精确到毫秒,位于java.util包下。
因为Date对象只能打印默认的样式,不能格式化,因此SimpleDateFormat类就有了。
此类的对象就是一个日期时间格式化器,SimpleDateFormat类的作用
先来看返回指定格式的日期字符串
再来看通过指定日期的字符串来返回一个Date对象
一个SimpleDateFormat对象只能格式化或解析一种指定格式的,如果需要其他格式,则需要重新创建另一个SimpleDateFormat对象
JDK提供的日历类,为了方便日期运算而产生。
一个Canlendar实例代表了当前系统时间的日历对象,可以以年、月、日等不同单位来快速运算日期时间,功能十分强大。
Calendar是一个抽象类,不能直接创建对象,需要通过静态方法getInstance()来获取一个Calendar的实现类对象
常用的API
在Calendar中,通过一个数组来维护Date对象的年、月、日、时、分、秒等信息,为了方便获取某个字段的值,在Calendar中定义了一些表示索引的常量,可以通过具体的源码来查看。
注意:
在获取月份时是 0 ~ 11 , 也就是说获取的是1 , 其实是2月份
在获取周时,星期日为1,星期六为7
通过调用Calendar对象的add方法来进行某个字段的加减。
或通过set()方法直接对某个字段进行重新赋值。
ZoneId表示时区。
一个ZoneId实例就代表一个时区对象。
JDK8 为全世界的很多地方的时区都有了划分,比如Asia/Shanghai。
Instant实例代表一个时间戳。
ZoneDateTime是一个带有时区的时间。
有些类似于SimpleDateFormat类,
用于时间的格式化和解析。
其中LocalDateTime还可以转换成LocalDate和LocalDateTime
在JDK8中增加了关于时间间隔的类,能够表示时间间隔。