Sun Java System Calendar Server 管理ガイド |
第 17 章
Calendar Server のタイムゾーンの管理この付録では、Suna ONE Calendar Server がタイムゾーンを定義、処理する方法について、次の項目を説明します。
タイムゾーンのプロパティとパラメータの詳細については、次の Web サイトで『RFC 2445, Internet Calendaring and Scheduling Core Object Specification (iCalendar)』を参照してください。
http://www.ietf.org/rfc/rfc2445.txt
Calendar Server タイムゾーンの概要timezones.ics ファイルには、Calendar Server がサポートするタイムゾーン表記が定義されています。Solaris オペレーティングシステムでは、このファイルは次のディレクトリに格納されています。
cal_svr_base/opt/SUNWics5/cal/data
起動時に Calendar Server は timezones.ics ファイルを読み取ってタイムゾーンデータを生成し、そのデータをメモリに格納します。このため、Calendar Server の稼動中はタイムゾーンデータはメモリ内に維持されます。したがって、新しいタイムゾーンを追加したり、既存のタイムゾーンを変更した場合は、変更が適用されるように Calendar Server を停止して再起動する必要があります。
timezones.ics ファイル内のタイムゾーンは TZID パラメータで識別されます。たとえば、Calendar Server は図 17-1 に示す America/Los_Angeles TZID を使用して太平洋標準時 (PST/PDT) を識別します。TZNAME プロパティはタイムゾーンの略式表記で、たとえば America/Los_Angeles であれば、PST (Pacific Standard Time、太平洋標準時) となります。
America/Los_Angeles のように夏時間 (DST) が適用されるタイムゾーンには、標準時間用の STANDARD と夏時間用の DAYLIGHT という 2 つのサブコンポーネントが含まれます。X-NSCP-TZCROSS リストには、そのタイムゾーンで夏時間 (DAYLIGHT) と標準時間 (STANDARD) が切り替わる日付が含まれます。
RRULE プロパティは、STANDARD と DAYLIGHT の規則パターンを定義します。TZOFFSETFROM プロパティと TZOFFSETTO プロパティは、夏時間と標準時間が切り替わる前後の GMT からの時間差を定義します。Calendar Express のユーザーインタフェースでは、X-NSCP-TZCROSS に指定されている日付を使用して、タイムゾーンの変更をいつ表示するかが決定されます。
タイムゾーンの ID (tzid) パラメータを含む WCAP コマンドは、timezones.ics ファイルに定義されている有効なタイムゾーンを参照する必要があります。Calendar Server は、そのタイムゾーンを使用して日付を返します。WCAP コマンドに不明なタイムゾーンが指定されている場合、デフォルトでは Calendar Server は GMT タイムゾーンの日付を返します。WCAP の詳細については、『Sun Java System Calendar Server 6 2004Q2 Developer's Guide』を参照してください。
図 17-1 は、timezones.ics ファイル内の America/Los_Angeles タイムゾーンの表記を示しています。
Calendar Server タイムゾーンの管理ここで説明する内容は次のとおりです。
新しいタイムゾーンの追加
ここでは、Calendar Express ユーザーインタフェースで使用できるように Calendar Server に新しいタイムゾーンを追加する方法について説明します。たとえば、America/Miami 用のタイムゾーンの追加が必要になるかもしれません。
ヒント
新しいタイムゾーンを追加する最も簡単な方法は、次の手順で説明する各ファイルで、追加するタイムゾーンに似たタイムゾーンエントリをコピーし、それを編集する方法です。たとえば、America/Miami 用のタイムゾーンを追加するのであれば、各ファイルで America/New_York のタイムゾーンエントリをコピーして編集します。
新しいタイムゾーンを追加するには
- 次のファイルに新しいタイムゾーン用のタイムゾーンブロックを追加します。
cal_svr_base/opt/SUNWics5/cal/data/timezones.ics
新しいタイムゾーンブロックを追加する最も簡単な方法は、追加するタイムゾーンと夏時間 (DST) の時間差などが似ている既存のブロックをコピーする方法です。次に、追加するタイムゾーンに合わせて新しいタイムゾーンブロックに変更を加えます。追加するタイムゾーンに夏時間 (DST) が適用される場合は、それに似たブロックを探します。
- 次のファイルで getDisplayNameofTZID テンプレートを修正します。
cal_svr_base/opt/SUNWics5/cal/html/language/i18n.xsl file
この language には、サイトで使用する言語のディレクトリを指定します。たとえば、英語であれば en、フランス語であれば fr を指定します。
i18n.xsl ファイルに次のような新しいエントリを追加します。
<xsl:when test="$tzid='TimeZoneArea/TimeZoneName'"
TimeZoneArea/TimeZoneName</xsl:when>TimeZoneArea には地理的な領域 (Africa、America、Asia、Atlantic、Australia、Europe、または Pacific) を指定します。
TimeZoneName には新しいタイムゾーンの名前を指定します。
例 :
<xsl:when test="$tzid='America/Miami'">America/Miami</xsl:when>
- 次の XML ファイルを修正します。
cal_svr_base/opt/SUNWics5/cal/html/change_timezone.xml
cal_svr_base/opt/SUNWics5/cal/html/new_cal.xml
cal_svr_base/opt/SUNWics5/cal/html/new_group.xmlそれぞれのファイルに次の行を追加します。
<timezone type="TimeZoneType" tzid="TimeZoneArea/TimeZoneName" offset="offset"/>
TimeZoneType には、 "americas"、"europeAfrica"、または "asiaPacific" を指定します。
TimeZoneArea と TimeZoneName は手順 2 で定義しています。
offset には、新しいタイムゾーンが GMT と比較して何時間進んでいるか (+) または遅れているか (-) を指定します。たとえば、新しいタイムゾーンが GMT から 4 時間遅れている場合は、時間差として -04:00 を指定します。
例 :
<timezone type="americas" tzid="America/Miami" offset="-05:00" daylightOffset="-04:00"/>
- 新しいタイムゾーンをユーザー設定のデフォルトタイムゾーンにするときは、次のファイルの icsTimeZone エントリを変更します。
cal_svr_base/opt/SUNWics5/cal/html/default_user_prefs.xml
- Calendar Express のオンラインヘルプに新しいタイムゾーンへの参照を追加するときは、次のファイルを修正します。
cal_svr_base/opt/SUNWics5/cal/html/language/chcncpt.html
- 新しいタイムゾーンが適用されるように、Calendar Server を停止し (稼動していた場合)、再起動します。
既存のタイムゾーンの変更
ここでは、既存のタイムゾーンを変更する方法について説明します。たとえば、「America/Phoenix」というタイムゾーン名から「US/Arizona」への変更が必要になるかもしれません。
既存のタイムゾーンを変更するには
- 次のファイルで、変更するタイムゾーンのタイムゾーンブロックを変更します。
cal_svr_base/opt/SUNWics5/cal/data/timezones.ics
タイムゾーン名を変更するときは、TZID エントリの名前を変更します。
- 次のファイルで getDisplayNameofTZID テンプレートを修正します。
cal_svr_base/opt/SUNWics5/cal/html/language/i18n.xsl file
ここで、language には、サイトで使用する言語のディレクトリを指定します。たとえば、英語であれば en、フランス語であれば fr を指定します。
タイムゾーン名を変更するときは、既存の名前を変更します。
- タイムゾーンの変更に合わせて次の XML ファイルを変更します。
cal_svr_base/opt/SUNWics5/cal/html/change_timezone.xml
cal_svr_base/opt/SUNWics5/cal/html/new_cal.xml
cal_svr_base/opt/SUNWics5/cal/html/new_group.xml
これらのファイルのエントリについては、「新しいタイムゾーンを追加するには」の手順 2 と手順 3 を参照してください。
- 変更がユーザー設定のデフォルトタイムゾーンに影響するときは、次のファイルの icsTimeZone エントリを修正します。
cal_svr_base/opt/SUNWics5/cal/html/default_user_prefs.xml
- 変更が Calendar Express のオンラインヘルプに影響するときは、次のファイルを修正します。
cal_svr_base/opt/SUNWics5/cal/html/language/chcncpt.html
- タイムゾーンの変更が適用されるように、Calendar Server を停止し (稼動していた場合)、再起動します。