跳到主要內容

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   H24小時制的小時(例如 HH 表示兩位小時)

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

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

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

n   aAM/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.           時間點是否處於日光節約時間內。