python中健壮且完整的扩展或RRULE

python中健壮且完整的扩展或RRULE,python,python-dateutil,rrule,Python,Python Dateutil,Rrule,使用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

使用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
和朋友没有持续时间的概念:他们在时间上重复瞬间的规则

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


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

dateutil.rrule
和朋友没有持续时间的概念:他们在时间上重复瞬间的规则

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

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