EST5EDT是否等于ET?

问题描述 投票:0回答:1

我知道ET(东部时间)有来自EST和EDT的DST,但我在不同的编程语言和ET的不同库中寻找那个时区不是一个选项,但EST5EDT是。

谢谢。

javascript python timezone pytz
1个回答
0
投票

简短回答:不,他们并不平等,因为EST5EDT没有美国东部时间所经历的任何变化历史。改为使用America/New_York


更长的回答:

EST5EDT是POSIX时区定义,可以在许多系统上的TZ环境变量中使用。这种格式在Linux man tzthe GNU docs以及this article from IBM中有描述。 EST5EDT告诉你的所有标准时间是UTC-5并标记为EST,白天时间是UTC-4并标记为EDT。而已。

随着计算机系统随着时间的推移而发展,很明显POSIX时区没有足够的信息来正确跟踪世界的时区。例如,考虑history of DST in the United States,其中最后一次更改发生在2007年,将日光周期延长了5周。 POSIX定义无法表示此类数据,从而导致转换错误。

因此,现在优选的机制是使用来自IANA TZ Database的时区标识符(也称为“Olson”或“ZoneInfo”)。在此数据库中,美国东部时间由标识符America/New_York表示。它还有一个别名US/Eastern,您可以在大多数库(JavaScript,Python等)中使用它们。 You can find a complete list of identifiers here

你可能会注意到EST5EDT作为标识符之一,EST,但不是EDT。这些是历史的工件,因为TZ数据库中的某些标识符需要向后兼容POSIX时区定义。您现在应该考虑这些已弃用,并且仅使用Area/Locality形式的标识符。

© www.soinside.com 2019 - 2024. All rights reserved.