Python中的 "US/Eastern "与 "EST "时区对比

0 人关注

现在是2022/06/28,实际上是2022年6月28日;我注意到当我试图从Python控制台获得当前时间时,有两种不同的结果,即东部时间(多伦多、蒙特利尔和纽约)。那么这两个参数之间有什么区别呢?我准备回答这个问题。

python
timezone
pytz
Farzad Amirjavid
Farzad Amirjavid
发布于 2022-06-29
2 个回答
gloo
gloo
发布于 2022-06-29
已采纳
0 人赞同

如果你想获得纽约的当前时间,"EST "并不准确,因为它代表东部标准时间(UTC-05:00),比东部夏令时间(UTC-04:00)晚一个小时。由于夏令时的原因,纽约将根据一年中的不同时间,遵守美国东部时间或东部时间。

"US/Eastern "比 "EST "更好,因为它代表美国的东部时区,并会考虑到由于夏令时的任何转变。然而,代表 "美国/东部 "的区域已经被 改名为 为 "America/New_York",并为向后兼容而保留。

我很惊讶,"EST "甚至在所有情况下都能发挥作用。3个字母的缩写并不是全世界唯一的。
gloo
你说的没错,缩写是模糊的。它似乎是被支持的,因为这个名字出现在以前版本的时区数据库中
Farzad Amirjavid
Farzad Amirjavid
发布于 2022-06-29
0 人赞同

获取多伦多当前时间的第一个方法是。

from datetime import datetime
from pytz import timezone
tz = timezone('EST')
print(datetime.now(tz))

The output is the following:

2022-06-28 16:23:23.333585-05:00

获取多伦多当前时间的第二个方法是。

from datetime import datetime
from pytz import timezone
tz = timezone('US/Eastern')
print(datetime.now(tz))

The output is the following: