我很难理解"Etc/GMT-5“时区和以pytz表示的UTC之间的转换。
>>> dt = datetime(2009, 9, 9, 10, 0) # September 9 2009, 10:00
>>> gmt_5 = pytz.timezone("Etc/GMT-5")
>>> gmt_5.localize(dt)
datetime.datetime(2009, 9, 9, 10, 0, tzinfo=<StaticTzInfo 'Etc/GMT-5'>)到目前为止,一切都很好,但接下来我尝试将其转换为UTC:
>>> gmt_5.localize(dt).astimezone(pytz.utc)
datetime.datetime(2009, 9, 9, 5, 0, tzinfo=<UTC>)所以在我看来,当我从格林尼治时间的10:00转换到UTC的时候,我得到了05:00?我希望派兹给我15:00的时间。
我遗漏了什么?
编辑:--我已经确认,美国/东部时区的时区转换工作与我预期的一样:
>>> eastern = pytz.timezone("US/Eastern")
>>> eastern.localize(dt)
datetime.datetime(2009, 9, 9, 10, 0, tzinfo=...) # Too long
>>> pytz.utc.normalize(eastern.localize(dt).astimezone(pytz.utc))
datetime.datetime(2009, 9, 9, 14, 0, tzinfo=<UTC>)编辑2:我已经确认当我使用Etc/GMT+5时,我会得到15:00,这是我期望从Etc/GMT-5得到的。这是侏儒虫吗?
https://stackoverflow.com/questions/4008960
复制相似问题