前言
在Java 8中新增了表示時間的類狭莱,用來替代原來的Date、Calendar類
在新的時間類中,有三個時間概念需要與原來的作區(qū)分跌捆,可以參考SQL里的時間類型
- Date —— 日期,不包含時間
- Time —— 一天中的時間
- DateTime —— 日期加時間
Java 8的時間相關的幾個包
- java.time:核心時間類
- java.time.chrono 其他地方的紀年法
- java.time.format 時間格式化相關的類
- java.time.temporal 定義時間的基礎接口
- java.time.zone 時區(qū)相關的類
常用的類
類 | 說明 |
---|---|
Duration | 表示持續(xù)時間象颖,從一個時間點持續(xù)到另一個時間點佩厚,比如:數據結構課從8:00上到10:00 |
Instant | 時間點 |
LocalDate | 本地日期,默認時區(qū) |
LocalDateTime | 本地日期時間说订,默認時區(qū) |
MonthDay | 月份中的日期 |
OffsetDateTime | 時區(qū)偏移量的日期時間 |
OffsetTime | 時區(qū)偏移量的事件 |
Period | 表示時間段抄瓦,最小單位是天潮瓶,開始結束時間點不確定,比如:國慶放7天假 |
Year | 年 |
YearMonth | 一年中的月 |
ZonedDateTime | 時區(qū)的日期時間 |
ZoneId | 時區(qū)ID钙姊,比如Asia/Shanghai |
DayOfWeek | 一周的天 |
Month | 月 |
DateTimeFormatter | 日期格式化 |
UML類圖
java.time包部分類UML圖.png
轉換關系
Java8 Time類轉換圖.png
Spring支持
Spring Boot
如果是Spring默認的Jackson庫筋讨,在字段上Jackson的@JsonFormat
注解,Spring在序列化和反序列化時都會按照指定的格式進行格式化和解析摸恍,即請求類型和返回類型的字段都可以用悉罕。
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
LocalDateTime createAt;