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() 获得总的转换和转换规则。