SSブログ

タイムゾーンコンポーネント(VTIMEZONE)のつづき [iCalendar]

前回の続きです。

前回見ましたようにVTIMEZONEコンポーネントはその中にプロパティとサブコンポーネントを含んでいます。まずは、サブコンポーネントの外にあるプロパティについて下記の通りに記述されています。

プロパティ名M/O概要
TZIDMTEXT iCalendarオブジェクト内で個々の「VTIMEZONE」コンポーネントを識別するために使用。
LAST-MODIFIEDOUTC(?) 本コンポーネントの定義の最終更新日時を設定する。
TZURLOURL 公開されている「VTIMEZONE」のURLを指定する。URLは誰でもアクセスできるリソースを指すべき(SHOULD)で、 「file:」URLや閉じた環境のURLであるべきでない(SHOULD NOT)。


また、「STANDARD」や「DAYLIGHT」サブコンポーネントのプロパティは下記の通りです。・・・前回の定義と記述順が違いますね・・・。いいですが・・。

プロパティ名M/O概要
DTSTARTMDATE-TIME サブコンポーネント定義が有効になる開始日時を指定。ローカル時刻で記載(MUST)。
TZOFFSETFROMMUTC offset タイムゾーンの適用開始時点を「DTSTART」からのオフセットで示す(?)
下記の例はニューヨークの秋から有効になることを示す。

DTSTART:19671029T020000
TZOFFSETFROM:-0400
TZOFFSETTOMUTC offset タイムゾーンが有効になった時のUTCオフセットを示す。
TZNAMEOTEXT タイムゾーンの表示名を記述する
RRULEO タイムゾーンの開始日時の指定に利用する。特に次の目的に利用。

・効果の満了日が分かっている場合は「UNTIL」を設定する(MUST)。また、その設定値はUTC time(MUST)。
・開始日が「RRULE」で決められる場合、「DTSTART」「TZOFFSETFROM」プロパティを使用する(MUST)
RDATEODATE-TIME(?) タイムゾーンの開始日時の指定に利用する。日時はローカルタイムで指定(MUST)。UTC offsetは「TZOFFSETFROM」に記述。
COMMENTOTEXT タイムゾーンに関する説明の文章を記載。


う~ん、今一意味が取れてないところもありますが、下記の例を見れば理解できるでしょうか・・。

BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
BEGIN:DAYLIGHT
DTSTART:19670430T020000
RRULE:FREQ=YEARLY;BYMONTH=4;
 BYDAY=-1SU;UNTIL=19730429T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYMONTH=10;
 BYDAY=-1SU;UNTIL=20061029T060000Z
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19740106T020000
RDATE:19750223T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19760425T020000
RRULE:FREQ=YEARLY;BYMONTH=4;
 BYDAY=-1SU;UNTIL=19860427T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYMONTH=4;
 BYDAY=1SU;UNTIL=20060402T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;
 BYDAY=2SU
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;
 BYDAY=1SU
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
END:VTIMEZONE
ニューヨークで1967年4月30日3:00:00 EDTに有効になるタイムゾーンルール。
BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
BEGIN:STANDARD
DTSTART:20071104T020000
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
「DTSTART」プロパティのみを設定しているニューヨークのタイムゾーン情報。 2007年3月11日3:00:00 EDT ~2008年3月9日 1:59:59 ESTの間の繰り返しイベントのみに適合する。 例えば、2007年6月1日~2007年12月31日の毎週金曜日8:00am~9:00amに起こるイベントに利用可能。
BEGIN:VTIMEZONE
TZID:America/New_York
LAST-MODIFIED:20050809T050000Z
TZURL:http://zones.example.com/tz/
 America-New_York.ics
BEGIN:STANDARD
DTSTART:20071104T020000
RRULE:FREQ=YEARLY;BYMONTH=11;BYDAY=1SU
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20070311T020000
RRULE:FREQ=YEARLY;BYMONTH=3;BYDAY=2SU
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
ニューヨークの「RRULE」を利用した現在のタイムゾーンの例。「STANDARD」「DAYLIGHT」のいずれも終了日は設定されていない。本日以降、永遠に有効なイベントとなる。
BEGIN:VTIMEZONE
TZID:Fictitious
LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;
 BYMONTH=10
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;
 BYMONTH=4;UNTIL=19980404T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
終了日の設定されている架空のDaylight Timeルールのタイムゾーンの例。
BEGIN:VTIMEZONE
TZID:Fictitious
LAST-MODIFIED:19870101T000000Z
BEGIN:STANDARD
DTSTART:19671029T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZOFFSETFROM:-0400
TZOFFSETTO:-0500
TZNAME:EST
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:19870405T020000
RRULE:FREQ=YEARLY;BYDAY=1SU;
 BYMONTH=4;UNTIL=19980404T070000Z
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
BEGIN:DAYLIGHT
DTSTART:19990424T020000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=4
TZOFFSETFROM:-0500
TZOFFSETTO:-0400
TZNAME:EDT
END:DAYLIGHT
END:VTIMEZONE
1つ目のDaylight Timeルールに終了日が設定されている架空のタイムゾーンの例。 2つ目のDaylight Timeルールは1つ目が終わった後に有効になる(?)


例がやたらと長くなりましたが、ちゃんと見てないので、意味が正しく取れてないかも知れません。



【参考】
What is an onset date? - YAHOO! ANSWERS






ブログを作る(無料) powered by SSブログ

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。