1. 程式人生 > >日期時間API

日期時間API

一個 text 國際 日期時間 不一致 bsp p s instant 定義

Java 8 通過發布新的Date-Time API來進一步加強對日期與時間的處理.

在舊版的Java中,日期時間API存在諸多問題其中有

非線程安全 - java.util.Date是非線程安全的,所有日期類都是可變的,這是Java日期類最大的問題之一.

設計很差 - Java日期/時間類的定義並不一致,在java.util和java.sql的包中都有日期類,此外用於格式化和解析的類在java.text包中定義.java.util.Date同事包含日期和時間,而java.sql.Date僅包含日期,將其納入java.sql包並不合理.另外這兩個類都有相同的名字,這本身就是一個非常糟糕的設計.

時區處理麻煩 - 日期類並不提供國際化,沒有時區支持,因此Java引入了java.util.Calendar和java.util.TimeZone類,但他們同樣存在上述所有的問題.

Java 8 在 java.time包下提供了很多新的API.一下為兩個比較重要的API:

Local(本地) - 簡化了日期時間的處理,沒有時區問題.

Zoned(時區) - 通過定制的時區處理日期時間

新的java.time包涵蓋了所有處理日期,日期/時間,時區,時刻(instants),過程(during)與時鐘(clock)的操作.

1.本地化日期時間API

LocalDate/LocalTime和LocalDateTime類可以在處理時區不是必須的情況.代碼如下:

日期時間API