EST5EDT是否等于ET?

时间:2019-03-01 14:06:49

标签: javascript python timezone pytz

我知道ET(东部时间)具有EST和EDT的DST,但是我无法在使用不同编程语言的不同库中查找该时区,而ET5不是一个选择,但是EST5EDT是。

谢谢。

1 个答案:

答案 0 :(得分:0)

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


更长的答案:

EST5EDT POSIX时区定义,可在许多系统上的TZ环境变量中使用。 Linux man tzthe GNU docsthis 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

您可能会注意到EST5EDTEST一样是标识符之一,但没有EDT。由于一段时间内,TZ数据库中的某些标识符需要与POSIX时区定义向后兼容,所以这些都是历史的产物。您现在应该考虑不推荐使用这些标识符,并且仅使用Area/Locality形式的标识符。