如何在 Python 中获取 EST 时区

How to get EST timezone in Python

我想用 Python 获取美国东部时间。我有以下代码:

import datetime
from pytz import timezone
import time
now_EST = datetime.datetime.today().astimezone(timezone('EST'))
print(now_EST)

输出为:

2022-03-29 09:52:55.130992-05:00

但是当我google EST 时区时,我发现现在的时间是 10:52 am EST,这基本上是正确的时间。

为什么我的代码显示的时间比正确时间早 1 小时?

夏令时。尝试“EST5EDT”

使用适当的 IANA time zone name 以避免缩写的歧义。

from datetime import datetime
import pytz

print(datetime.now(pytz.timezone("America/New_York")))
# 2022-03-29 11:20:30.917144-04:00

如果你恰好使用Python3.9或更高版本,请使用built-inzoneinfo模块设置时区(pytz已弃用):

from datetime import datetime
from zoneinfo import ZoneInfo

print(datetime.now(ZoneInfo("America/New_York")))
# 2022-03-29 11:20:30.917144-04:00