gpt4 book ai didi

Python pytz 与 DST 的问题

转载 作者:行者123 更新时间:2023-12-01 05:28:31 25 4
gpt4 key购买 nike

我正在使用命令

datetime.datetime.fromtimestamp(int(1364691600)).replace(tzinfo=pytz.utc).astimezone(pytz.timezone("Europe/London"))

这会返回

datetime.datetime(2013, 3, 31, 3, 0, tzinfo=<DstTzInfo 'Europe/London' BST+1:00:00 DST>)

这当然应该返回

datetime.datetime(2013, 3, 31, 2, 0, tzinfo=<DstTzInfo 'Europe/London' BST+1:00:00 DST>)

我认为这是因为当 BST 切换时是 1 小时,而这里却是 2 小时

>>> datetime.datetime.fromtimestamp(int(1364691599)).replace(tzinfo=pytz.utc).astimezone(pytz.timezone("Europe/London"))
datetime.datetime(2013, 3, 31, 0, 59, 59, tzinfo=<DstTzInfo 'Europe/London' GMT0:00:00 STD>)

最佳答案

fromtimestamp(tz=None) 使用您的本地时区,而您的本地时区不是 utc,因此调用 .replace(tzinf=pytz.utc) 是不正确的关于结果。

直接传递时区:

>>>> from datetime import datetime 
>>> import pytz # $ pip install pytz
>>> datetime.fromtimestamp(1364691600, pytz.timezone("Europe/London"))
datetime.datetime(2013, 3, 31, 2, 0, tzinfo=<DstTzInfo 'Europe/London' BST+1:00:00 DST>)

关于Python pytz 与 DST 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20848944/

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