タイムゾーンコンポーネント(VTIMEZONE) [iCalendar]
さて、次は「VTIMEZONE」ですね。時間関係ですねぇ・・。また、大半が後回しになるかも・・。
それはさておき、このコンポーネントは「タイムゾーン」を定義するために使用されるコンポーネントです。定義は下記の通り。
定義を見る限り「VTIMEZONE」のコンポーネントは「STANDARD」コンポーネントと「DAYLIGHT」コンポーネントを中に含む形となる様です。それぞれのコンポーネントは少なくともいずれか一つは設定する必要があり、それぞれ複数存在してもいい様子です。
まず、プロパティ、コンポーネント(色つき背景)について、まとめておきます。
「STANDARD」「DAYLIGHT」コンポーネントの中身のプロパティは下記の通りです。
タイムゾーンは、下記の様な各地で決められている時間に関するルールで明確に定義されています。
この仕様ではタイムゾーンの登録情報については記載されていない様ですが、実装する際にはTZ databaseを参照すればいいとのこと。
「VTIMEZONE」カレンダーコンポーネントについて、その他いろいろ書かれていますが、概要は下記の通りだと思います。
「observance(遵守事項?)」について、下記が書かれています。
なんか、よくわからないので、図示して欲しいですね・・。ちなみに、まだ後5ページ近くもあります・・。
長いので、つづく。
【参考】
・What is an onset date? - YAHOO! ANSWERS
それはさておき、このコンポーネントは「タイムゾーン」を定義するために使用されるコンポーネントです。定義は下記の通り。
timezonec = "BEGIN" ":" "VTIMEZONE" CRLF *( ; ; ’tzid’ is REQUIRED, but MUST NOT occur more ; than once. ; tzid / ; ; ’last-mod’ and ’tzurl’ are OPTIONAL, ; but MUST NOT occur more than once. ; last-mod / tzurl / ; ; One of ’standardc’ or ’daylightc’ MUST occur ; and each MAY occur more than once. ; standardc / daylightc / ; ; The following are OPTIONAL, ; and MAY occur more than once. ; x-prop / iana-prop ; ) "END" ":" "VTIMEZONE" CRLF standardc = "BEGIN" ":" "STANDARD" CRLF tzprop "END" ":" "STANDARD" CRLF daylightc = "BEGIN" ":" "DAYLIGHT" CRLF tzprop "END" ":" "DAYLIGHT" CRLF tzprop = *( ; ; The following are REQUIRED, ; but MUST NOT occur more than once. ; dtstart / tzoffsetto / tzoffsetfrom / ; ; The following is OPTIONAL, ; but SHOULD NOT occur more than once. ; rrule / ; ; The following are OPTIONAL, ; and MAY occur more than once. ; comment / rdate / tzname / x-prop / iana-prop ; ) |
定義を見る限り「VTIMEZONE」のコンポーネントは「STANDARD」コンポーネントと「DAYLIGHT」コンポーネントを中に含む形となる様です。それぞれのコンポーネントは少なくともいずれか一つは設定する必要があり、それぞれ複数存在してもいい様子です。
まず、プロパティ、コンポーネント(色つき背景)について、まとめておきます。
tzid | M | 二つ以上は設定しない(MUST NOT) |
last-mod | O | 二つ以上は設定しない(MUST NOT) |
tzurl | O | 二つ以上は設定しない(MUST NOT) |
standardc | M/O | 「standardc」「daylightc」のいずれかは必須(MUST)。二つ以上設定可(MAY) |
daylightc | M/O | 「standardc」「daylightc」のいずれかは必須(MUST)。二つ以上設定可(MAY) |
x-prop | O | 二つ以上設定可(MAY) |
iana-prop | O | 二つ以上設定可(MAY) |
「STANDARD」「DAYLIGHT」コンポーネントの中身のプロパティは下記の通りです。
dtstart | M | 二つ以上設定しない(MUST NOT) |
tzoffsetto | M | 二つ以上設定しない(MUST NOT) |
tzoffsetfrom | M | 二つ以上設定しない(MUST NOT) |
rrule | O | 二つ以上設定すべきでない(SHOULD NOT) |
comment | O | 二つ以上設定可(MAY) |
rdate | O | 二つ以上設定可(MAY) |
tzname | O | 二つ以上設定可(MAY) |
x-prop | O | 二つ以上設定可(MAY) |
iana-prop | O | 二つ以上設定可(MAY) |
タイムゾーンは、下記の様な各地で決められている時間に関するルールで明確に定義されています。
- 標準時のUTCからのオフセット(多くの場合は1時間単位のオフセット)
- サマータイム(Daylight Saving Time / Advanced Time / Summer Time / Legal Time)制による調整
この仕様ではタイムゾーンの登録情報については記載されていない様ですが、実装する際にはTZ databaseを参照すればいいとのこと。
「VTIMEZONE」カレンダーコンポーネントについて、その他いろいろ書かれていますが、概要は下記の通りだと思います。
- 他のカレンダーコンポーネントにネストできない
- 1つのカレンダーオブジェクトに複数存在できる
→この場合、それぞれのコンポーネントは別々のタイムゾーンを定義すること(MUST) - 個々のコンポーネントはそれぞれ別々の「TZID」パラメータを定義する(MUST) ←上と同じこと?
- 繰り返しのカレンダーコンポーネント(recurring calendar component)から参照される場合、全ての繰り返しに対して有効なタイムゾーンを提供すること(MUST) ←意味不明
- 「STANDARD」サブコンポーネントは、標準時間(Standard time)について記述する
- 「DAYLIGHT」サブコンポーネントは、サマータイム(Daylight Saving Time)について記述する
- 「STANDARD」「DAYLIGHT」サブコンポーネントは次の要素から成る。
- 式典(observance)の着手日時(the first onset DATE-TIME)
- 分かる場合、式典(observance)の最終的な着手日時(the last onset DATE-TIME)
- 式典の適用されるまでのオフセット(?)
- 式典が有効になる日時を示すルール
- 式典の名前(optional name)
「observance(遵守事項?)」について、下記が書かれています。
- それぞれのタイムゾーンに、一定の期間に守るべく独立した定義が複数ありえる
- 「STANDARD」もしくは「DAYLIGHT」サブコンポーネントで記述される。
→いくつかのサブコンポーネントで一定期間のタイムゾーンを記述する - もう一文の意味がよくわかりません・・・・・・(T_T)
なんか、よくわからないので、図示して欲しいですね・・。ちなみに、まだ後5ページ近くもあります・・。
長いので、つづく。
【参考】
・What is an onset date? - YAHOO! ANSWERS