8

有人可以给我一个使用 python icalendar库生成icalendar文件的 VTIMEZONE 部分的示例吗?

我相信这可以通过使用 icalendar.cal.Timezone 组件类来完成,但还不知道具体如何。

优选地,生成的 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()
4

1 回答 1

1

目前这似乎是不可能的,至少在使用 pytz 进行大量黑客攻击时是不可能的。

有一个关于相应icalendar 问题的近期更新正在进行的讨论。你可以在那里找到一些 hacky 代码。

另一个 icalendar 问题似乎是为 VTIMEZONE->icalendar 转换实现某些东西的地方。

于 2014-12-08T13:45:57.943 回答