gpt4 book ai didi

Python 日期时间库,在向日期时间添加天数时可以识别夏令时

转载 作者:行者123 更新时间:2023-11-28 18:26:23 27 4
gpt4 key购买 nike

是否有执行此操作的 python 日期时间库?

dt = iso8601.parse_date("2016-03-13 00:00:00-08")
dt = dt.astimezone(us_pacific)
dt += timedelta(days=1)
self.assertEqual(dt, iso8601.parse_date("2016-03-14 00:00:00-07"))

换句话说,我正在寻找一个库,其中的日期时间对象足够智能,可以知道 timedelta(days=1) 与 timedelta(hours=24) 不同(支持月份的奖励积分)。

目前,我发现错误风险最小的解决方法是使用日期,然后将其转换为日期时间,并将给定时区的时间设置为 0。但问题是很容易假设上面的代码会按给定的方式工作,所以我想使用一个没有风险的库。同样,如果给定了一个日期时间对象,将其转换回日期也是一件麻烦事。

编辑:

这被搁置了,因为询问是否有一个软件库可以完成一项任务与必须从头开始编写代码是无关紧要的。我不确定如何更好地表达,因为我已经解释了解决方法是使用日期然后添加时间,这可以通过多种方式完成。我正在寻找一种更好的方法,我已经知道它不是 python 标准库的一部分。我很确定会问“有没有更好的方法来做到这一点?”,或者“我怎样才能用大约相同数量的代码行来完成这个?”也是完全有效的问题。

如果没有图书馆做这样的事情,我当然可以做到。我将其称为 YADateTime,因为它将是另一个 Python 日期时间库。也就是说,如果已经有一个库,那么我创建一个就没有意义了。

最佳答案

这对我适用于 Python 3.6.4。根据时区感知日期时间对象正确添加了日期(即日期递增,小时保持在 0)。我遇到的问题是时区偏移量不正确。

不漂亮,但它似乎工作。

EST = pytz.timezone('US/Eastern')
DAY = dt.timedelta(days = 1)

date = date + DAY
date_with_correct_timezone = EST.localize(dt.datetime(date.year,date.month,date.day,hour,minute,0))
if date != date_with_correct_timezone:
print(f' corrected {date} to {date_with_correct_timezone}')
date = date_with_correct_timezone

示例输出:

corrected 2017-03-13 00:00:00-05:00 to 2017-03-13 00:00:00-04:00
corrected 2017-11-06 00:00:00-04:00 to 2017-11-06 00:00:00-05:00

关于Python 日期时间库,在向日期时间添加天数时可以识别夏令时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41232296/

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