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原始日期和日曆對象。 |