Java8 日期時間API

使用Java8,新的日期時間API引入覆蓋舊的日期時間API的以下缺點。

  • 非線程安全 - java.util.Date不是線程安全的,因此開發者必須在使用日期處理併發性問題。新的日期時間API是不可變的,並且沒有setter方法。

  • 設計不佳 - 默認的開始日期從1900年,開始每月從1天從0開始,所以沒有統一。不直接使用方法操作日期。新的API提供了這樣操作實用方法。

  • 困難的時區處理 - 開發人員必須編寫大量的代碼來處理時區的問題。新的API設計開發保持特定領域設計。

JAVA8引入了java.time包 - 下一個新的日期時間API。以下是一些在java.time程序包引入重要的類。

  • 本地 - 簡化日期時間API,沒有時間處理區的複雜性。

  • 時區 - 專業的日期時間API來處理各種時區。

SN

使用描述方法

1

本地日期時間API 
LocalDate/本地時間和LocalDateTime類簡化時區不需要開發。

2

時區日期時間API
時區日期時間API使用的時區是需要考慮的。

3

計時單位枚舉
java.time.temporal.ChronoUnit枚舉在Java8添加,以取代舊的API用來代表日,月等整數值

4

週期和持續時間
這些類引入到處理時間的差異。

5

時間調節器
TemporalAdjuster是做數學日期。例如,要獲得「本月第二個星期六」或「下週二」。

6

向後兼容性
toInstant()方法被添加到可用於將它們轉換到新的日期時間的API原始日期和日曆對象。