首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用DST时数查找时间差(Python)

问用DST时数查找时间差(Python)
EN

Stack Overflow用户
提问于 2020-08-25 13:21:07
回答 1查看 524关注 0票数 4

给定两个日期时间(如2020-01-01 00:00:00和2020-04-01 00:00:00 ),我希望根据夏令时(夏时制)的加/减,得到这两个日期之间的时间差(按小时计算)。我不知道怎样才能继续下去。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-25 14:39:13

默认情况下,Python的timedelta给出了感知日期时间对象(那些附加时区的对象)的墙时间差,而不是绝对时间(在物理意义上;第二个是硅单元)。

要获得"DST感知的“时间增量,首先要确保日期时间对象被本地化到特定的时区(其中包含DST)。然后,考虑到两个datetime对象的UTC偏移量;例如

代码语言:javascript
复制
from datetime import datetime
from dateutil.tz import gettz

t0, t1 = "2020-03-07 00:00:00", "2020-03-09 00:00:00"
# to datetime object
t0, t1 = datetime.fromisoformat(t0), datetime.fromisoformat(t1)
# set appropriate timezone
tzone = gettz("US/Eastern")
t0, t1 = t0.replace(tzinfo=tzone), t1.replace(tzinfo=tzone)
# check if UTC offset changed
utcdelta = t1.utcoffset() - t0.utcoffset()
# now calculate the timedelta
td = t1 - t0 - utcdelta
print(td)
# 1 day, 23:00:00

为了进一步阅读,我推荐Paul的时区感知数据时间算法的语义博客文章。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63579796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档