gpt4 book ai didi

python - PYTZ 'America/Edmonton' 偏移量错误

转载 作者:太空狗 更新时间:2023-10-29 22:09:47 24 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Weird timezone issue with pytz

这似乎是错误的:

>>> import pytz
>>> z1 = timezone('America/Edmonton')
>>> z2 = timezone('US/Mountain')
>>> z1
<DstTzInfo 'America/Edmonton' LMT-1 day, 16:26:00 STD>
>>> z2
<DstTzInfo 'US/Mountain' MST-1 day, 17:00:00 STD>
>>> pytz.VERSION
'2012f'
>>>

'America/Edmonton' 和 'US/Eastern' 应该是同一时区 (17:00:00 STD)。更何况 16:26:00 没有任何意义。

-- 更新--

以上内容在 Jon Skeet 的回答中是有意义的。但是,当我这样做时,事情变得很奇怪:

>>> d = datetime.now()
>>> d
datetime.datetime(2012, 10, 9, 15, 21, 41, 644706)

我创建了一个天真的约会对象。由于“美国/埃德蒙顿”我的时区,我尝试手动设置:

>>> d2 = d.replace(tzinfo=timezone('America/Edmonton'))
>>> d2
datetime.datetime(2012, 10, 9, 15, 21, 41, 644706, tzinfo=<DstTzInfo 'America/Edmonton' LMT-1 day, 16:26:00 STD>)

这应该不会有任何改变,因为那是正确的 TZ。然而:

>>> d2.astimezone(timezone('US/Eastern'))
datetime.datetime(2012, 10, 9, 18, 55, 41, 644706, tzinfo=<DstTzInfo 'US/Eastern' EDT-1 day, 20:00:00 DST>)

这应该给我 2 小时的偏移量(“美国/东部”和“美国/埃德蒙顿”之间的差异)但它给了我 3 小时 26 分钟(2 小时 1 小时26 分钟 :D )

插入 timezone('US/Mountain') 会在 astimezone() 中产生正确的结果。使用“美国/埃德蒙顿”创建感知日期时间也可以正常工作。

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com