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の問題に関するかなり最近の更新に関する進行中の議論があります。そこにいくつかのハックコードがあります。

この他の icalendar の問題は、VTIMEZONE->icalendar 変換のために何かが実装される場所のようです。

于 2014-12-08T13:45:57.943 に答える