前言
在Java 8中新增了表示時間的類,用來替代原來的Date、Calendar類
在新的時間類中,有三個時間概念需要與原來的作區(qū)分,可以參考SQL里的時間類型
- Date —— 日期,不包含時間
- Time —— 一天中的時間
- DateTime —— 日期加時間
Java 8的時間相關(guān)的幾個包
- java.time:核心時間類
- java.time.chrono 其他地方的紀年法
- java.time.format 時間格式化相關(guān)的類
- java.time.temporal 定義時間的基礎(chǔ)接口
- java.time.zone 時區(qū)相關(guān)的類
常用的類
| 類 | 說明 |
|---|---|
| Duration | 表示持續(xù)時間,從一個時間點持續(xù)到另一個時間點,比如:數(shù)據(jù)結(jié)構(gòu)課從8:00上到10:00 |
| Instant | 時間點 |
| LocalDate | 本地日期,默認時區(qū) |
| LocalDateTime | 本地日期時間,默認時區(qū) |
| MonthDay | 月份中的日期 |
| OffsetDateTime | 時區(qū)偏移量的日期時間 |
| OffsetTime | 時區(qū)偏移量的事件 |
| Period | 表示時間段,最小單位是天,開始結(jié)束時間點不確定,比如:國慶放7天假 |
| Year | 年 |
| YearMonth | 一年中的月 |
| ZonedDateTime | 時區(qū)的日期時間 |
| ZoneId | 時區(qū)ID,比如Asia/Shanghai |
| DayOfWeek | 一周的天 |
| Month | 月 |
| DateTimeFormatter | 日期格式化 |
UML類圖

java.time包部分類UML圖.png
轉(zhuǎn)換關(guān)系

Java8 Time類轉(zhuǎn)換圖.png
Spring支持
Spring Boot
如果是Spring默認的Jackson庫,在字段上Jackson的@JsonFormat注解,Spring在序列化和反序列化時都會按照指定的格式進行格式化和解析,即請求類型和返回類型的字段都可以用。
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
LocalDateTime createAt;