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原始日期和日曆物件。