gpt4 book ai didi

python - 规范化日期时间对象

转载 作者:行者123 更新时间:2023-11-28 17:38:59 25 4
gpt4 key购买 nike

我正在做一些日期时间魔术,并试图弄清楚为什么时间会稍微偏离。

UTC 时间 2014 年 6 月 3 日下午 3 点:

>>> chicago = pytz.timezone('US/Central')
>>> chicago.localize(datetime(2014,6,3,15,0,0)).astimezone(pytz.utc)
datetime.datetime(2014, 6, 3, 20, 0, tzinfo=<UTC>)

UTC 时间 2014 年 12 月 2 日下午 3 点:

>>> chicago.localize(datetime(2014,12,2,15,0,0)).astimezone(pytz.utc)
datetime.datetime(2014, 12, 2, 21, 0, tzinfo=<UTC>)

第二个示例中的小时数是 21,而第一个示例中的小时数是 20。我想也许日期没有标准化,所以我试了这个:

>>> chicago.normalize(chicago.localize(datetime(2014,12,2,15,0,0))).astimezone(pytz.utc)
datetime.datetime(2014, 12, 2, 21, 0, tzinfo=<UTC>)

还是21岁,这是怎么回事?

最佳答案

夏令时。

在第一种情况下(6 月 3 日),芝加哥采用中部夏令时。与 UTC 的偏移量为五个小时。

>>> fmt = '%Y-%m-%d %H:%M:%S %Z%z'
>>> clt=chicago.localize(datetime(2014,6,3,15,0,0))
>>> clt.strftime(fmt)
'2014-06-03 15:00:00 CDT-0500'
^^^^^^^^

在第二种情况下(12 月 2 日),芝加哥采用中部标准时间。与 UTC 的偏移量为六个小时。

>>> clt=chicago.localize(datetime(2014,12,2,15,0,0))
>>> clt.strftime(fmt)
'2014-12-02 15:00:00 CST-0600'
^^^^^^^^

您对 normalize() 的调用在这里没有帮助,因为您没有在跨越 DST 边界的本地时间上进行日期或时间算术。

关于python - 规范化日期时间对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27263953/

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