Pytz 和日期时间奇怪的行为 - 可能的错误



>我得到以下输出。这是 pytz 的预期行为吗?顺便说一下,我住在美国/东部时区。为什么 EST 给出 -04:56 作为时区偏移量?

import datetime
import pytz
a = datetime.datetime.now()
tz_est = pytz.timezone("US/Eastern")
a = a.replace(tzinfo=tz_est)
print("EST")
print(a)
print("n")
b = datetime.datetime.now(pytz.timezone("US/Pacific"))
print("PST - version 1")
print(b)
print("n")
tz_pst = pytz.timezone('US/Pacific')
c = tz_pst.normalize(a)
print("PST - version 2")
print(c)
print("n")

最2017-03-16 22:52:27.616000-04:56

太平洋标准时间 - 版本 12017-03-16 19:52:27.617000-07:00

太平洋标准时间 - 版本 22017-03-16 20:48:27.616000-07:00

import datetime
import pytz
a = datetime.datetime.now(pytz.timezone("US/Eastern"))
b = datetime.datetime.now()
pacific = pytz.timezone("US/Pacific")
c = pacific.localize(b)
d = pacific.normalize(a)
print(c)
print(d)

使用 zoneinfo 而不是 pytz 来获取预期的行为。

https://docs.python.org/3/library/zoneinfo.html

from zoneinfo import ZoneInfo
dt = datetime(2020, 10, 31, 12, tzinfo=ZoneInfo("America/Los_Angeles"))

最新更新