gpt4 book ai didi

python - python 中稳健且完整的扩展或 RRULE

转载 作者:太空宇宙 更新时间:2023-11-03 19:21:56 25 4
gpt4 key购买 nike

使用 dateutil.rrulestr,我设法扩展了一些重复项,例如如下所示的重复项:

DTSTART;TZID=Europe/Zurich:20100930T183000
DTEND;TZID=Europe/Zurich:20100930T193000
RRULE:FREQ=DAILY;UNTIL=20101005T163000Z
BEGIN:VTIMEZONE
...

使用例如:

my_rrule.between(datetime.datetime(2010, 10, 2, 11, 00, tzinfo=pytz.utc),
datetime.datetime(2010, 10, 9, 11, 00, tzinfo=pytz.utc)))

但是,这只给我提供了事件的开始日期时间,而不是结束日期时间。有没有办法也获得结束时间? (比我自己计算开始结束增量并将其应用于每个开始时间更干净)。

此外,某些重复事件可以针对全天事件,并采用以下形式:

DTSTART;VALUE=DATE:20120225
DTEND;VALUE=DATE:20120226
RRULE:FREQ=WEEKLY;BYDAY=SA
BEGIN:VTIMEZONE
...

如果我尝试使用相同的 Between() 调用来扩展此函数,则会收到错误:

TypeError: can't compare offset-naive and offset-aware datetimes

是否有一些查询适用于任何类型的重复(理想情况下返回日期或日期时间值,具体取决于情况)?

最佳答案

dateutil.rrule 和 friend 们没有持续时间的概念:他们正在重复时间瞬间的规则。

我的解决方案是将 rruleset 替换为自定义类,该类也接受持续时间(或提供默认持续时间)。

然后,我可以生成事件,并附加每个事件的持续时间,以确定间隔。

关于python - python 中稳健且完整的扩展或 RRULE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9420944/

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