我使用 pytz 模块通过以下代码将 America/Los_Angeles 时区的日期转换为 utc:
TZ = 'America/Los_Angeles'
from = pytz.timezone(TZ)
utc = from.localize(original_date).astimezone(pytz.utc)
现在,我想测试 utc 值是否实际上是 UTC 格式。如何用 pytz 或 datetime 做到这一点?
请帮忙谢谢
utc.tzinfo == pytz.utc # returns True if utc in UTC
例子:
now = datetime.datetime.now(pytz.utc)
now.tzinfo == pytz.utc # returns True
now = now.astimezone(pytz.timezone('America/Los_Angeles'))
now.tzinfo == pytz.utc # returns False
接受的答案不适用于其他任何pytz
对象。由于pytz
在进行转换[1](例如正确进行夏令时等)方面实际上非常糟糕,因此进行交叉实现检查可能会更好。
now = datetime.datetime.now(pytz.utc)
if now.tzinfo:
now.utcoffset().total_seconds() == 0 # returns true
[1] https://pendulum.eustace.io/blog/a-faster-alternative-to-pyz.html