gpt4 book ai didi

java - 东部时间 (ET) 的正确 ZoneId : either "US/Eastern" or "America/New_York"?

转载 作者:行者123 更新时间:2023-12-02 13:48:49 25 4
gpt4 key购买 nike

我必须使用时区“ET”(东部时间)。在Java中,没有ZoneId.of("ET")。

我应该使用哪一个来正确表示“ET”:

ZoneId TIMEZONE_ET = ZoneId.of("US/Eastern");

ZoneId TIMEZONE_ET = ZoneId.of("America/New_York");

最佳答案

鉴于您的要求是使用“东部区域”,我会使用美国/东部,但请注意:

  • 这只是一个指向 America/New_York 的链接。
  • This file Paul Eggert 的 tz 存储库中表示,这些链接是将“旧”名称(例如 US/Eastern)链接到当前名称。在这种情况下,“旧”很可能意味着“已弃用”。 Paul Eggert 是 IANA 时区列表的 TZ 协调员,因此这显然是一个规范来源。

考虑到这一点,您可能最好选择 America/New_York,但鉴于该更改被列为自 1993 年开始,显然旧名称不会很快消失。

两者都将包含 DST 规则等。例如,在我的系统上:

var zoneRules = ZoneId.of("US/Eastern").getRules();
System.out.println(zoneRules.isDaylightSavings(Instant.parse("2019-07-01T12:00:00Z"))); // true
System.out.println(zoneRules.isDaylightSavings(Instant.parse("2019-01-01T12:00:00Z"))); // false

请注意,7 月 1 日中午是 DST,而 1 月 1 日中午则不是。

更多:

IANA Time Zone Database files ,我发现:

to2050.tzs:

Link America/New_York    US/Eastern

...这表明这两个是别名(尽管 ZoneId#equals 不会为它们返回 true)。此外,在北美他们有:

# US eastern time, represented by New York

附有引用相关法律的注释。

因此,我现在很清楚,它们是同义词。很明显,US/Eastern 是“旧名称”。当然,理论上,纽约可能会在某个时候决定不再属于东部时区(也许在时间上更接近英国和欧洲),但这似乎<强>真的不太可能...

关于java - 东部时间 (ET) 的正确 ZoneId : either "US/Eastern" or "America/New_York"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56758712/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com