javascript - EST5EDT 等于 ET 吗?
问题描述
我知道 ET(东部时间)有来自 EST 和 EDT 的 DST,但我在不同编程语言的不同库中寻找那个时区,ET 不是一个选项,但 EST5EDT 是。
谢谢。
解决方案
简短回答:不,它们不相等,因为EST5EDT
没有美国东部时间所经历的任何变化历史。改用America/New_York
,确实如此。
更长的答案:
EST5EDT
是一个POSIX 时区定义,可以TZ
在许多系统的环境变量中使用。这种格式在Linuxman tz
、GNU 文档以及IBM 的这篇文章中都有描述。告诉EST5EDT
您的只是标准时间是 UTC-5 并标记为EST
,而日光时间是 UTC-4 并标记为EDT
。而已。
随着计算机系统随着时间的推移而发展,很明显 POSIX 时区不包含足够的信息来正确跟踪世界时区。例如,考虑美国 DST 的历史,其中最后一次更改发生在 2007 年,将日光时间延长了 5 周。POSIX 定义无法表示此类数据,从而导致转换错误。
因此,现在首选的机制是使用来自IANA TZ 数据库的时区标识符(也称为“Olson”或“ZoneInfo”)。在此数据库中,美国东部时间由标识符 表示America/New_York
。它还有一个别名US/Eastern
,您可以在大多数库(JavaScript、Python 等)中使用。 您可以在此处找到完整的标识符列表。
您可能会注意到它EST5EDT
显示为标识符之一,与 一样EST
,但不是EDT
。这些是历史产物,因为 TZ 数据库中的某些标识符需要向后兼容 POSIX 时区定义。您现在应该考虑弃用这些,并且只使用Area/Locality
标识符的形式。
推荐阅读
- python - Pandas read_csv 方法仅读取 csv 单元格值的第一个字符
- python - ModuleNotFoundError:使用 auto-py-to-exe 将 Python 文件转换为可执行文件时没有名为“pandas”的模块
- c++ - 如何使用运算符在同一行中多次调用函数
- php - 与nodejs相比,无法验证php中的openssl签名
- python - 通过网络摄像头进行 OpenCV 人体检测 - 没有可见的检测
- ruby-on-rails - Rails 资源新的和编辑的路由重定向到根页面而不是它们各自的路由
- python - 在 python 上使用 cloudflare 保护连接到 websocket
- c++ - 我要求用户输入大小和数组,但是当我打印矢量时,它仅显示“0”作为输出
- python - 尝试拆分 Pandas Dataframe 中的每个值都会出错
- django - Django_filters 小部件自定义