跳到主要內容

DateTime 日期時間運算

  好


頻道需要你的支持,謝謝你成為我們的會員(加入會員)

影片1 日期時間運算的核心類別介紹與建立日期時間物件



影片2 日期與時間運算及格式化與解析



影片3 時區與日光節約時間




範例


Java SE JDK 11 中的日期與時間運算

一、簡介

Java SE JDK 11 的 java.time package 提供了基於 JSR 310 標準所開發的強大的日期與時間 API。這些類別旨在解決舊版 java.util.Date 和 java.util.Calendar 類別的不足,提供更直觀且強大的操作。

二、核心類別

Java SE JDK 11 的日期與時間 API 包含以下幾個核心類別:

l   LocalDate:表示不包含時間的日期,例如 2024-12-25。

l   LocalTime:表示不包含日期的時間,例如 16:12:13.045194300。

l   LocalDateTime:表示包含日期和時間的日期時間,例如
2024-12-25T16:12:13.045194300
。

l   ZonedDateTime:表示帶有時區的日期時間,例如
2024-12-25T16:12:13.045194300+08:00[Asia/Taipei]
。

l   Instant:表示時間戳,即從 1970-01-01T00:00:00Z 開始的毫秒數。

n   毫秒 0.001秒
毫秒是最常見的時間單位之一,通常用於計時和測量較短時間間隔的應用。許多 API 都會使用毫秒來進行內部運算,因為它具有足夠的精度,同時便於與其他單位轉換。

l   Period:表示日期的間隔,以年、月、日來衡量。

l   Duration:表示時間的長度,通常以秒和奈秒來衡量。

n   奈秒 0.000,000,001秒
奈秒是更高精度的時間單位,通常用於需要極高精度計時的情況,例如性能測試或計算機科學研究。

三、建立日期與時間

使用靜態方法來建立日期與時間實體:

l   LocalDate

l   LocalTime

l   LocalDateTime

l   ZonedDateTime

四、日期與時間運算

Java 提供了豐富的 API 來操作日期與時間。

1.           加減日期

2.           加減時間

3.           計算日期間隔

4.           計算時間間隔

5.           日期時間比較

五、格式化與解析

在 Java 中,日期和時間的格式化是一個重要的主題,尤其是在顯示和解析日期時間字串時。

使用 java.time API 可以輕鬆地進行這些操作。Java 提供了 DateTimeFormatter 用於格式化和解析日期與時間。

1.           格式化日期與時間

2.           解析日期與時間

3.           常見的格式化模式符號
以下是一些常見的格式化模式符號,可以用來建立自定義的格式化模式:

n   y:年(例如 yyyy 表示四位年份,yy 表示兩位年份)

n   M:月(例如 MM 表示兩位月份,M 表示不帶零前綴的月份)

n   d:日(例如 dd 表示兩位日期,d 表示不帶零前綴的日期)

n   H:24小時制的小時(例如 HH 表示兩位小時)

n   m:分鐘(例如 mm 表示兩位分鐘)

n   s:秒(例如 ss 表示兩位秒)

n   S:毫秒(例如 SSS 表示三位毫秒)

n   a:AM/PM 標誌(例如 a 表示上午或下午)

六、時區

要在不同時區之間進行日期時間轉換,Java 提供了豐富的 API 來幫助你進行這些操作。

1.           從本地時間轉換到另一個時區的時間

2.           從另一個時區轉換到本地時間

3.           比較不同時區的日期和時間

4.           計算兩個時間點之間的時間差

5.           處理時區的格式化

七、日光節約時間

日光節約時間(Daylight Saving Time, DST)是一種通過在夏季月份將時鐘撥快一小時來充分利用日光的方法。 通過將時間提前,人們在清醒時可以享受更多的日光,並減少夜間照明所需的能量。

1.           美國的日光節約時間

l   開始日期:每年三月的第二個星期日凌晨 2:00。

l   結束日期:每年十一月的第一個星期日凌晨 2:00。

l   調整方式:

n   在開始日期,時鐘撥快一小時(例如,從凌晨 1:59 變為凌晨 3:00)。

n   在結束日期,時鐘撥慢一小時(例如,從凌晨 1:59 變為凌晨 1:00)。

2.           例外情況:

l   亞利桑那州和夏威夷州不遵守日光節約時間。

l   美國的一些海外領土,如波多黎各、美屬維爾京群島、美屬薩摩亞和關島,也不遵守日光節約時間。

 

日光節約時間的轉換可能會對時間計算造成一定的困擾。

1.           把時間設定為特定時區時考慮日光節約時間。

2.           不同時區的日期時間轉換時考慮日光節約時間。

3.           時間點是否處於日光節約時間內。