我目前使用的是Python 3.9.6并且有这个简单的代码
import datetime
import pytz
est = pytz.timezone('America/New_York')
myDateTime = datetime.datetime(year=2024, month=8, day=15, hour=17, minute=00, tzinfo=est)
print("America/New_York: ", myDateTime.isoformat())
print("UTC: ", myDateTime.astimezone(pytz.utc).isoformat())
给出结果
America/New_York: 2024-08-15T17:00:00-04:56
UTC: 2024-08-15T21:56:00+00:00
目前纽约正处于夏令时。 因此,我预计 America/New_York 会显示
-04:00
的时间偏移,但它显示的是 -4:56
。 我想知道是否有人对此有解释。
尝试这样:
import datetime
import pytz
est = pytz.timezone('America/New_York')
naive_datetime = datetime.datetime(year=2024, month=8, day=15, hour=17, minute=0)
# Localize it to the Eastern timezone
myDateTime = est.localize(naive_datetime)
print("America/New_York: ", myDateTime.isoformat())
print("UTC: ", myDateTime.astimezone(pytz.utc).isoformat())
当您使用 tzinfo 参数创建日期时间对象时,如下所示:
myDateTime = datetime.datetime(year=2024, month=8, day=15, hour=17, minute=0, tzinfo=est)