Java 中的 CET 時間

Hiten Kanwar 2023年10月12日
Java 中的 CET 時間

在整個世界上,有 190 多個國家/地區,每個國家/地區都遵循特定的時區。這些時區充當規則,對於方便有效地表達時間至關重要。但是,由於夏令時等某些變數,這些時區可能會變得不明確。

Java 為我們提供了多個處理時區的類。隨著新版本的 Java 的出現,它提出了更廣泛和有用的類,例如 ZoneIdZoneOffset

隨著 JSR-310 的出現,新增了一些新的、更有效率的 API 來管理時間和時區。ZoneId 就是這樣一個新增的類。它是時區的表示,例如 Europe/Berlin

大多數固定偏移量由 ZoneOffset 表示。我們可以通過在任何 ZoneId 上呼叫 normalized() 來確保固定偏移 ID 將表示為 ZoneOffset

CET 的 IANA 定義表示它遵循中歐的時區規則,其中包括夏季和冬季時間。

應該理解時區識別符號和該識別符號的短名稱是兩個不同的元素。名稱可能會在 CETCEST 之間變化,但識別符號始終固定為 CET

我們可以使用 getRules() 函式獲取與 CET 時區相關的功能。它可以傳達給定時間的偏移量。

請參考以下程式碼。

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
public class Main {
  public static void main(String[] args) {
    ZoneId zone = ZoneId.of("CET");
    System.out.println("Zone Name: " + zone);
    System.out.println("Offset " + zone.getRules());
  }
}

輸出:

Zone Name: CET
Offset ZoneRules[currentStandardOffset=+01:00]

其他方法可能是使用 ZoneOffset.ofHours(1) 而不是使用 ZoneId.of("CET")。我們可以使用 getTransitions()getTransitionRules() 獲得總的轉換和轉換規則。