付録 B
タイムゾーン
ここでは、Calendar Server によるタイムゾーンの処理方法について説明します。また、新しいタイムゾーンテーブルを追加する方法や、 Calendar Server 付属のタイムゾーンテーブルを変更する方法についても説明します。
次の項目について説明します。
タイムゾーン管理の概要
Calendar Server でサポートされているタイムゾーンの表現は、timezones.ics ファイルに定義されています。92 のタイムゾーンが定義されているこのファイルは、server-root/cal/bin/data ディレクトリに入っています (たとえば、 Solaris システムの場合は opt/SUNWics5/cal/bin/data)。
Calendar Server は起動時に timezones.ics ファイルを読み込み、92 のタイムゾーンを生成してメモリの配列に格納します。このため、Calendar Server の実行中は、すべてのタイムゾーンがメモリに保持されます。
WCAP コマンドにタイムゾーン ID (tzid) が含まれている場合は、メモリ配列内のタイムゾーンを参照する必要があります。たとえば、 storeevents や fetchcomponents_by_range などのコマンドに tzid パラメータを指定する場合は、このパラメータ値は 92 のタイムゾーンのリストに定義されている tzid でなければなりません。Calendar Server はこのタイムゾーンにデータを返し、このタイムゾーンを適用した日付をすべてのデータが持つようになります。
デフォルトの場合、認識されない tzid をコマンドに指定すると、サーバは GMT (世界標準時) タイムゾーンを返します。このコマンドに関して返されるすべてのデータには、GMT を適用した日付を持つようになります。
WCAP の詳細については、『iPlanet Calendar Server プログラマーズマニュアル』を参照してください。
Calendar Server タイムゾーンの管理
タイムゾーンの追加方法と変更方法について説明します。
Calendar Server のタイムゾーンリストを変更するには、server-root/cal/bin/data ディレクトリ (Solaris システムの場合は opt/SUNWics5/cal/bin/data) に入っている timezones.ics ファイルを編集します。このファイルには、92 のタイムゾーンの Calendar Server 形式が定義されています。
タイムゾーンは、TZID プロパティによって指定されます。たとえば 太平洋標準時 (PST/PDT) は、TZID America/Los_Angeles として認識されます (下記の例を参照)。通常、夏時間を持つタイムゾーンは、STANDARD (標準) と DAYLIGHT (夏時間) の 2 つの部分で構成されます。
図 B-1    America/Los_Angeles タイムゾーン
TZID:America/Los_Angeles
|
BEGIN:STANDARD
|
DTSTART:19671025T020000
|
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
|
TZOFFSETFROM:-0700
|
TZOFFSETTO:-0800
|
TZNAME:PST
|
END:STANDARD
|
BEGIN:DAYLIGHT
|
DTSTART:19870405T020000
|
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
|
TZOFFSETFROM:-0800
|
TZOFFSETTO:-0700
|
TZNAME:PDT
|
END:DAYLIGHT
|
X-NSCP-TZCROSS:19880403T100000Z;19881030T090000Z;19890402T100000Z;19891029T090
000Z;
|
19900401T100000Z;19901028T090000Z;19910407T100000Z;19911027T090000Z;
|
19920405T100000Z;19921025T090000Z;19930404T100000Z;19931031T090000Z;
|
19940403T100000Z;19941030T090000Z;19950402T100000Z;19951029T090000Z;
|
19960407T100000Z;19961027T090000Z;19970406T100000Z;19971026T090000Z;
|
19980405T100000Z;19981025T090000Z;19990404T100000Z;19991031T090000Z;
|
20000402T100000Z;20001029T090000Z;20010401T100000Z;20011028T090000Z;
|
20020407T100000Z;20021027T090000Z;20030406T100000Z;20031026T090000Z;
|
19940403T100000Z;19941030T090000Z;19950402T100000Z;19951029T090000Z;
|
20060402T100000Z;20061029T090000Z;20070401T100000Z;20071028T090000Z;
|
20080406T100000Z;20081026T090000Z;20090405T100000Z;20091025T090000Z;
|
20100404T100000Z;20101031T090000Z;20110403T100000Z;20111030T090000Z;
|
20120401T100000Z;20121028T090000Z;20130407T100000Z;20131027T090000Z;
|
20140406T100000Z;20141026T090000Z;20150405T100000Z;20151025T090000Z;
|
20160403T100000Z;20161030T090000Z;20170402T100000Z;20171029T090000Z;
|
20180401T100000Z;20181028T090000Z;20190407T100000Z;20191027T090000Z;
|
20200405T100000Z;20201025T090000Z;20210404T100000Z;20211031T090000Z;
|
20220403T100000Z;20221030T090000Z;20230402T100000Z;20231029T090000Z;
|
20240407T100000Z;20241027T090000Z;20250406T100000Z;20251026T090000Z;
|
20260405T100000Z;20261025T090000Z;20270404T100000Z;20271031T090000Z;
|
20280402T100000Z;20281029T090000Z;20290401T100000Z;20291028T090000Z;
|
20300407T100000Z;20301027T090000Z;20310406T100000Z;20311026T090000Z;
|
20320404T100000Z;20321031T090000Z;20330403T100000Z;20331030T090000Z;
|
20340402T100000Z;20341029T090000Z;20350401T100000Z;20351028T090000Z;
|
20360406T100000Z;20361026T090000Z;20370405T100000Z;20371025T090000Z;
|
20360406T120000Z;20361026T110000Z;20370405T120000Z;20371025T110000Z
|
END:VTIMEZONE
|
|
RRULE プロパティは、STANDARD と DAYLIGHT の規則のパターンを定義します。TZOFFSETFROM プロパティと TZOFFSETTO プロパティは、DAYLIGHT から STANDARD への移行、また STANDARD から DAYLIGHT への移行の前後における GMT からのオフセットを定義します。TZNAME プロパティは、タイムゾーンの省略表現です。タイムゾーンプロパティの詳細については、RFC 2445、Internet Calendaring and Scheduling Core Object Specification (iCalendar) を参照してください。
新しいタイムゾーンの追加
TZID リストに存在しない TZID 名を作成します。
タイムゾーンの表現を作成します。
Calendar Express ユーザインタフェースをサポートするには、新しいタイムゾーンの X-NSCP-TZCROSS リストを作成する必要があります。Calendar Express ユーザインタフェースは、タイムゾーンの変更をいつ表示するかを、X-NSCP-TZCROSS に定義されている日付を使用して決定します。
-
X-NSCP-TZCROSS リストには、DAYLIGHT から STANDARD に、また STANDARD から DAYLIGHT にタイムゾーンが移行するときの日付が定義されています。
新しいタイムゾーンをメモリに読み込ませるには、Calendar Server をいったん停止して再起動します。
既存のタイムゾーンの変更
目的のタイムゾーンが表示されるように、TZID を変更します。
Calendar Express クライアントをサポートするには、変更したタイムゾーンの X-NSCP-TZCROSS リストを作成する必要があります。詳細については、上記の Step 3 を参照してください。
変更したタイムゾーンをメモリに読み込ませるには、Calendar Server をいったん停止して再起動します。
ユーザインタフェースのタイムゾーンのカスタマイズ
カスタマイズしたタイムゾーン名スキーマを使用できるように Calendar Express ユーザインタフェースを変更するには、JavaScript を追加し、Calendar Server が提供するタイムゾーン名に新しい名前をマップします。
たとえば、America/Los_Angeles テーブルの代わりに US Pacific という名前のカスタムタイマイズしたゾーンテーブルを使用するには、US Pacific の日付を America/Los_Angeles テーブルにマップするプログラムを作成する必要があります。
注
|
絶対に必要な場合以外は、タイムゾーンを変更しないでください。
|
iPlanet Calendar Serverタイムゾーンテーブル
iPlanet Calendar Server タイムゾーンテーブルは、server-root/cal/bin/data ディレクトリ (たとえば opt/SUNWics5/cal/bin/data) に入っている timezones.ics という名前のプレーンテキストファイルに定義されています。このファイルには、JDK (Java Development Kit) バージョン 1.1 に準拠した 92 のタイムゾーンが記載されています。
次の例は、タイムゾーンテーブルの最初の数セクションを示しています。
図 B-2    iPlanet Calendar Server タイムゾーンテーブル
BEGIN:VTIMEZONE
|
TZID:Pacific/Apia
|
BEGIN:STANDARD
|
DTSTART:19970101T000000
|
TZOFFSETFROM:-1100
|
TZOFFSETTO:-1100
|
TZNAME:WST
|
TZNAME:SST
|
TZNAME:NUT
|
END:STANDARD
|
END:VTIMEZONE
|
|
BEGIN:VTIMEZONE
|
TZID:Pacific/Honolulu
|
BEGIN:STANDARD
|
DTSTART:19970101T000000
|
TZOFFSETFROM:-1000
|
TZOFFSETTO:-1000
|
TZNAME:HST
|
TZNAME:TKT
|
TZNAME:TAHT
|
END:STANDARD
|
END:VTIMEZONE
|
|
BEGIN:VTIMEZONE
|
TZID:America/Adak
|
BEGIN:STANDARD
|
DTSTART:19671025T020000
|
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
|
TZOFFSETFROM:-0900
|
TZOFFSETTO:-1000
|
TZNAME:HAST
|
END:STANDARD
|
BEGIN:DAYLIGHT
|
DTSTART:19870405T020000
|
RRULE:FREQ=YEARLY;BYDAY=1SU;BYMONTH=4
|
TZOFFSETFROM:-1000
|
TZOFFSETTO:-0900
|
TZNAME:HADT
|
END:DAYLIGHT
|
X-NSCP-TZCROSS:19880403T120000Z;19881030T110000Z;19890402T120000Z;19891029T110
000Z;
|
19900401T120000Z;19901028T110000Z;19910407T120000Z;19911027T110000Z;
|
19920405T120000Z;19921025T110000Z;19930404T120000Z;19931031T110000Z;
|
19940403T120000Z;19941030T110000Z;19950402T120000Z;19951029T110000Z;
|
19960407T120000Z;19961027T110000Z;19970406T120000Z;19971026T110000Z;
|
19980405T120000Z;19981025T110000Z;19990404T120000Z;19991031T110000Z;
|
20000402T120000Z;20001029T110000Z;20010401T120000Z;20011028T110000Z;
|
20020407T120000Z;20021027T110000Z;20030406T120000Z;20031026T110000Z;
|
20040404T120000Z;20041031T110000Z;20050403T120000Z;20051030T110000Z;
|
20060402T120000Z;20061029T110000Z;20070401T120000Z;20071028T110000Z;
|
20080406T120000Z;20081026T110000Z;20090405T120000Z;20091025T110000Z;
|
20100404T120000Z;20101031T110000Z;20110403T120000Z;20111030T110000Z;
|
20120401T120000Z;20121028T110000Z;20130407T120000Z;20131027T110000Z;
|
20140406T120000Z;20141026T110000Z;20150405T120000Z;20151025T110000Z;
|
20160403T120000Z;20161030T110000Z;20170402T120000Z;20171029T110000Z;
|
20180401T120000Z;20181028T110000Z;20190407T120000Z;20191027T110000Z;
|
20200405T120000Z;20201025T110000Z;20210404T120000Z;20211031T110000Z;
|
20220403T120000Z;20221030T110000Z;20230402T120000Z;20231029T110000Z;
|
20240407T120000Z;20241027T110000Z;20250406T120000Z;20251026T110000Z;
|
20260405T120000Z;20261025T110000Z;20270404T120000Z;20271031T110000Z;
|
20280402T120000Z;20281029T110000Z;20290401T120000Z;20291028T110000Z;
|
20300407T120000Z;20301027T110000Z;20310406T120000Z;20311026T110000Z;
|
20320404T120000Z;20321031T110000Z;20330403T120000Z;20331030T110000Z;
|
20340402T120000Z;20341029T110000Z;20350401T120000Z;20351028T110000Z;
|
20360406T120000Z;20361026T110000Z;20370405T120000Z;20371025T110000Z
|
END:VTIMEZONE
|
|