有人可以给我一个使用python icalendar库生成icalendar文件的VTIMEZONE部分的示例吗?
我相信可以通过使用icalendar.cal.Timezone Component类来完成此操作,但尚不完全了解。
优选地,icalendar文件的所得部分将类似于从Mac OS X ICal程序导出的此样本(或类似但仍有效的icalendar格式)。
BEGIN:VTIMEZONE
TZID:America/Denver
BEGIN:DAYLIGHT
TZOFFSETFROM:-0700
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
DTSTART:20070311T020000
TZNAME:MDT
TZOFFSETTO:-0600
END:DAYLIGHT
BEGIN:STANDARD
TZOFFSETFROM:-0600
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
DTSTART:20071104T020000
TZNAME:MST
TZOFFSETTO:-0700
END:STANDARD
END:VTIMEZONE
到目前为止,我已经有了此工作代码,但其中不包括所需的STANDARD和DAYLIGHT VTIMEZONE元素。
import icalendar
timezone = icalendar.cal.Timezone()
timezone.add('TZID', 'America/Denver')
timezone.to_ical()
最佳答案
目前看来这是不可能的,至少在使用pytz进行大量黑客攻击的情况下是不可能的。
正在进行的讨论中,对icalendar issue的更新相当新。您可以在此处找到一些hacky代码。
这个other icalendar issue似乎是将VTIMEZONE-> icalendar转换实现的地方。