Java8 日期时间处理
在 Java8 之前,为了得到一个过去或未来的日期时间,我们往往需要组合 Date 和 Calendar 一起使用。不幸的是,这对组合并不那么好使,正所谓谁用谁知道,心照不宣吧。
Java8 中新增了一套全新的日期时间 API,它明确的将日期时间划分为 LocalDate、LocalTime 以及 LocalDateTime,分别用于表示日期、时间和日期时间,并且产生的结果是不可变的和线程安全的。
Month
月份在 Java8 中声明成了枚举类型,增强了代码的可读性和可靠性。
|
|
DayOfWeek
星期在 Java8 中也声明成了枚举类型,增强了代码的可读性和可靠性。
|
|
LocalDate
用于表示日期,不包含时间和时区,采用标准的 ISO-8601 日历日期表示方法(年-月-日, yyyy-MM-dd),如 2007-12-03
|
|
除此之外,用于表示日期的还有 YearMonth(年月),MonthDay(月日),Year(年)。
|
|
LocalTime
表示与时区无关的本地时间,不包含日期,采用标准的 ISO-8601 日历时间表示方法:
HH:mm,HH:mm:ss,HH:mm:ss.SSS,HH:mm:ss.SSSSSS,HH:mm:ss.SSSSSSSSS
对于某个特定的时间,LocalTime 将采用其中的一个能表示它且格式是最短的一个,其余位没有的则隐含为0。如 10:15:30.
用法与 LocalDate 相似:
|
|
LocalDateTime
表示与时区无关的本地日期时间,采用标准的 ISO-8601 日历日期时间表示方法,按 ISO-8601 标准,日期和时间的组合表示时,需要在时间前面加一大写字母 T,如2004年5月3日下午5点30分8秒表示成2004-05-03T17:30:08.
用法与 LocalDate 和 LocalTime 相似:
|
|