我知道ET(东部时间)具有EST和EDT的DST,但是我无法在使用不同编程语言的不同库中查找该时区,而ET5不是一个选择,但是EST5EDT是。
谢谢。
答案 0 :(得分:0)
简短答案:不,它们并不相等,因为EST5EDT
没有美国东部时间经历的任何变化历史。改为使用America/New_York
。
更长的答案:
EST5EDT
是 POSIX时区定义,可在许多系统上的TZ
环境变量中使用。 Linux man tz
,the 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
形式的标识符。