與日期時間相關的 SDK。
時區是人為建立的概念,只有涉及特定地區設定時才重要。
與直覺相反,當地時間 表示與時區無關,也就是相關類別沒有儲存時區資訊的欄位。
Java 8 之前:java.util.Date & Java.util.Calendar
#
Java 8 及後續版本:java.time.*
#
interface Temporal 與 final Class Instant Implements Temporal
#
Temporal 實例代表任意時間範圍中的某個瞬間。
可以對 this 加上或減去一段時間,但仍會產生 Temporal。
最終類別 Instant 透過封裝一個表示自 epoch 起秒數的 long,以及該秒內奈秒數的 int,來實作 Temporal。
重要方法:
static Instant now()static Instant ofEpochMillis(long millis)long until(Temporal endExclusive, TemporalUnit unit)
統一:interface TemporalUnit 與 enum ChronoUnit Implements TemporalUnit
#
每個 ChronoUnit 列舉實例都只是帶有描述性名稱的 Duration。
與時區無關:java.time.LocalDate / java.time.LocalDateTime / java.time.LocalTime
#
Local 表示與時區無關。
概念上,
LocalDate是(year-month-day)三元組,LocalTime是(hour-minute-second)三元組,LocalDateTime是(year-month-day-hour-minute-second)六元組。
三個類別皆具備的重要方法
long until(Temporal endExclusive, TemporalUnit unit)計算直到另一個日期的時間量,單位由指定的單位決定。
評論
在 GitHub 上閱讀或評論(發表評論需要登入)