我正在尝试解析GCal的重复字段。通常,它看起来像这样:
DTSTART;TZID=Europe/Kiev:20101111T140000
DTEND;TZID=Europe/Kiev:20101111T150000
RRULE:FREQ=DAILY;UNTIL=20101112T120000Z
BEGIN:VTIMEZONE
TZID:Europe/Kiev
X-LIC-LOCATION:Europe/Kiev
BEGIN:DAYLIGHT
TZOFFSETFROM:+0200
TZOFFSETTO:+0300
TZNAME:EEST
DTSTART:19700329T030000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=-1SU
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:+0300
TZOFFSETTO:+0200
TZNAME:EET
DTSTART:19701025T040000
RRULE:FREQ=YEARLY;BYMONTH=10;BYDAY=-1SU
END:STANDARD
END:VTIMEZONE
我需要为我提供有价值的部分:事件的DTSTART,DTEND,RRULE和其他iCaledar的字段。 这样做是否存在解决方案?
答案 0 :(得分:3)
您可以尝试使用奇妙的库python-dateutil(http://labix.org/python-dateutil)。
答案 1 :(得分:1)
我正在使用mxm的icalendar包:
http://codespeak.net/icalendar/
我非常确定它会将所有fields字段传递给已解析的对象。我不确定reoccurence,因为我只是不在我的应用程序中使用它,但我会惊讶地发现它不存在。
答案 2 :(得分:0)
由于我遇到了类似的问题并且找不到任何工作,我刚刚在pypi上发布了一个小项目,它不仅会给你DTSTART,DTEND,RRULE,RDATE,UID和SUMMARY值,还会给定一个特定的时间窗口返回满足RRULE规则的所有日期。
你可以在这里得到它:http://pypi.python.org/pypi/pyICSParser(请注意我根本不是一个软件工程师,所以良好的编码实践合规性很差,虽然我会处理文档,但它还处于早期阶段)