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