Java 中的 CET 時間

Hiten Kanwar 2021年10月2日 2021年6月29日
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() 獲得總的轉換和轉換規則。