前へ     目次     索引     DocHome     次へ     
iPlanet Calendar Server 管理ガイド



付録 C   タイムゾーン


ここでは、iPlanet Calendar Server によるタイムゾーンの処理について説明します。また、新しいタイムゾーンテーブルを追加する方法や iPlanet Calendar Server に付属するタイムゾーンテーブルを変更する方法についても説明します。

iPlanet Calendar Server でサポートしているタイムゾーンの表記は、「iPlanet Calendar Server タイムゾーンテーブル」に掲載されているファイル timezones.ics で定義されます。このファイルは、server-root/cal/bin/data ディレクトリにあります (例 : /opt/SUNWics5/cal/bin/data)。このファイルには、91 のタイムゾーンが含まれています。

iPlanet Calendar Server は、起動時にファイル timezones.ics を読み込み、91 のタイムゾーンをメモリ内に生成し、それらを配列 cal_array に格納します。このため、サーバの実行中は、すべてのタイムゾーンがメモリ内に保持されます。

WCAP コマンドが、タイムゾーン ID (tzid) を含んでいる場合は、cal_array 内のタイムゾーンを参照する必要があります。WCAP については、『iPlanet Calendar Server プログラマリファレンス』を参照してください。

たとえば、storeeventsfetchcomponents_by_range などのコマンドに tzid パラメータを指定する場合、その値は 91 のタイムゾーンリストに定義されている tzid でなければなりません。サーバからはそのタイムゾーンのデータが返され、すべてのデータでそのタイムゾーンが適用された日付が使用されます。

認識できない tzid をコマンドに指定すると、サーバからはデフォルトの GMT (世界標準時) タイムゾーンが返されます。そのコマンドに関して返されるすべてのデータには、GMT が適用された日付が使用されます。

たとえば、次の WCAP コマンドをサーバに送信すると仮定します。

fetchcomponents_by_range.wcap?id=12345&calid=JSmithcal&dtstart=0&dtend=0&tzid=America/New_York&brief=1

このコマンドは、すべての日付に America/New_York で定義されているタイムゾーンが使用された状態で CALID JSmithcal 内のすべてのデータを返すように、サーバに要求します。このタイムゾーンはサーバで認識されているため、データは次のように正常に返されます。

HTTP/1.1 200

Date:Tue, 17 Aug 1999 23:58:29 GMT

Content-type:text/html; charset=iso-8859-1

Content-Length: 4206

Last-modified:Tue, 17 Aug 1999 23:58:29 GMT

Pragma:no-cache

Expires: 0

Cache-Control:no-cache

Connection:Keep-Alive

<html><head><script>

function color(s) { if (s) document.bgColor=s }

var id='n3l0m05sbeee8uh'

var userid='malika'

var calid='pub'

var errno=new Array()

var timezoneList = new Array()

var calprops = new Array()

var layer_errno = new Array()

function iso(p) {

if (!p) return null;

var y = p.substring(0,4)

var m = p.substring(4,6)

var d = p.substring(6,8)

var h = p.substring(9,11)

var i = p.substring(11,13)

var s = p.substring(13,15)

return new parent.ceDate(y, m-1, d, h, i, s, 0)

}

function Ec(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13){

this.uid=a1

this.rid=a2

this.calid=a3

this.dtstart=iso(a4)

this.dtend=iso(a5)

this.isAllDay=a6

this.summary=a7

this.created=iso(a8)

this.lastMod=iso(a9)

this.desc=a10

this.location=a11

this.tzid=a12

this.linkCalid=a13

}function Tc(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15){

this.uid=a1

this.rid=a2

this.calid=a3

this.dtstart=iso(a4)

this.due=iso(a5)

this.isAllDay=a6

this.summary=a7

this.created=iso(a8)

this.lastMod=iso(a9)

this.desc=a10

this.location=a11

this.completed=iso(a12)

this.percent=a13

this.tzid=a14

this.linkCalid=a15

}

function TZ(a1,a2,a3,a4,a5,a6) {

this.tzid=a1

this.sName=a2

this.dName=a3

this.sOffset=a4

this.dOffset=a5

this.crossOver=a6

}

function CP(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15) {

this.calid=a1

this.name=a2

this.parent=a3

this.tzid=a4

this.read=a5

this.write=a6

this.charset=a7

this.lang=a8

this.master=a9

this.desc=a10

this.lastMod=iso(a11)

this.created=iso(a12)

this.primaryOwner=a13

this.owners=a14

this.categories=a15

}

var event=new Array()

var status_types=new Array('confirmed', 'tentative', 'cancelled')

timezoneList[0] = new TZ('America/New_York',

'EST',

'EDT',

'-0500',

'-0400',

new Array('19880403T070000Z','19881030T060000Z','19890402T070000Z','19891029T060000Z',

'19900401T070000Z','19901028T060000Z','19910407T070000Z','19911027T060000Z',

'19920405T070000Z','19921025T060000Z','19930404T070000Z','19931031T060000Z',

'19940403T070000Z','19941030T060000Z','19950402T070000Z','19951029T060000Z',

'19960407T070000Z','19961027T060000Z','19970406T070000Z','19971026T060000Z',

'19980405T070000Z','19981025T060000Z','19990404T070000Z','19991031T060000Z',

'20000402T070000Z','20001029T060000Z','20010401T070000Z','20011028T060000Z',

'20020407T070000Z','20021027T060000Z','20030406T070000Z','20031026T060000Z',

'20040404T070000Z','20041031T060000Z','20050403T070000Z','20051030T060000Z',

'20060402T070000Z','20061029T060000Z','20070401T070000Z','20071028T060000Z',

'20080406T070000Z','20081026T060000Z','20090405T070000Z','20091025T060000Z',

'20100404T070000Z','20101031T060000Z','20110403T070000Z','20111030T060000Z',

'20120401T070000Z','20121028T060000Z','20130407T070000Z','20131027T060000Z',

'20140406T070000Z','20141026T060000Z','20150405T070000Z','20151025T060000Z',

'20160403T070000Z','20161030T060000Z','20170402T070000Z','20171029T060000Z',

'20180401T070000Z','20181028T060000Z','20190407T070000Z','20191027T060000Z',

'20200405T070000Z','20201025T060000Z','20210404T070000Z','20211031T060000Z',

'20220403T070000Z','20221030T060000Z','20230402T070000Z','20231029T060000Z',

'20240407T070000Z','20241027T060000Z','20250406T070000Z','20251026T060000Z',

'20260405T070000Z','20261025T060000Z','20270404T070000Z','20271031T060000Z',

'20280402T070000Z','20281029T060000Z','20290401T070000Z','20291028T060000Z',

'20300407T070000Z','20301027T060000Z','20310406T070000Z','20311026T060000Z',

'20320404T070000Z','20321031T060000Z','20330403T070000Z','20331030T060000Z',

'20340402T070000Z','20341029T060000Z','20350401T070000Z','20351028T060000Z',

'20360406T070000Z','20361026T060000Z','20370405T070000Z','20371025T060000Z'))

calprops[0] = new CP('pub',

'Public Calendar',

'',

'',

'0',

'0',

'',

'',

'',

'',

'19990817T235829Z',

'19990817T235829Z',

'malika',

new Array(),

new Array(),

new Array())

event[0]=new Ec('TZ_all_params_event',

'0',

'pub',

'19991111T093000',

'19991111T163000',

0,'testing-timezones_events',

'19990817T195829','19990817T195829',

'testing out timezones events',

'Mountain-View',

'America/New_York','')

layer_errno[0]=0

var size=1

var dtstartrange="0"

var dtendrange="0"

errno[0]=0

parent.ceCB(window.name)

</script></head></html>



タイムゾーンの管理



この節では、次の項目について説明します。

  • iPlanet Calendar Server のタイムゾーンリストを変更する方法

  • 新しいタイムゾーンを iPlanet Calendar Server に追加する方法

iPlanet Calendar Server のタイムゾーンリストを変更するには、server-root/cal/bin/data ディレクトリ (たとえば、/opt/SUNWics5/cal/bin/data) 内のファイル timezones.ics を編集する必要があります。このファイルには、91 の iPlanet Calendar Server タイムゾーン形式が定義されています。VTIMEZONE 形式の詳細は、iCalendar の仕様を参照してください。

タイムゾーンは、プロパティ TZID で識別されます。たとえば、iPlanet Calendar Server では、太平洋標準時 (PST/PDT) が TZID "America/Los_Angeles" として認識されます。次のタイムゾーンでは、"America/Los_Angeles" タイムゾーンが定義されています。

BEGIN:VTIMEZONE

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;19891029T090000Z;

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;

20040404T100000Z;20041031T090000Z;20050403T100000Z;20051030T090000Z;

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;

20380404T100000Z;20381031T090000Z;20390403T100000Z;20391030T090000Z

END:VTIMEZONE

夏時間が適用されるタイムゾーンは、通常、STANDARD および DAYLIGHT の 2 つの部分があります。



注  "RRULE" プロパティには、STANDARD および DAYLIGHT 規則のパターンを定義します。"TZOFFSETFROM" および "TZOFFSETTO" プロパティには、DAYLIGHT から STANDARD または STANDARD から DAYLIGHT に移行する前後の、GMT からのオフセットを定義します。



"TZNAME" プロパティは、タイムゾーンの簡易表現です。VTIMEZONE の表現の詳細は、iCalendar の仕様を参照してください。


新しいタイムゾーンの追加

X-NSCP-TZCROSS プロパティには、DAYLIGHT から STANDARD および STANDARD から DAYLIGHT に移行する時期を示す、次のような日付リストが定義されています。

  • 奇数番目の日付が STANDARD から DAYLIGHT へ移行する日を示しています。

  • 偶数番目の日付が DAYLIGHT から STANDARD へ移行する日を示しています。

Calendar Server の Web ブラウザベースのユーザインタフェースでは、
X-NSCP-TZCROSS の日付をもとにして、タイムゾーンの移行時期を表示します。

新しいタイムゾーンを iPlanet Calendar Server に追加するには、次の手順に従ってください。

  • TZID リストに存在しない TZID 名を作成します。

  • タイムゾーンの表現を作成します。

  • Calendar Web ブラウザのユーザインタフェースをサポートするには、新しいタイムゾーンの X-NSCP-TZCROSS リストを作成する必要があります。


既存のタイムゾーンの変更

既存のタイムゾーンを変更するには、次のようにします。

  • 目的のタイムゾーンデータを表現できるように、TZID を変更します。

  • Calendar Express クライアントをサポートするには、変更したタイムゾーンの
    X-NSCP-TZCROSS
    リストを作成する必要があります。


iPlanet Calendar Server ユーザインタフェースのタイムゾーンのカスタマイズ

Web ブラウザベースのユーザインタフェースを変更して、カスタマイズした名前のスキーマを使用するには、JavaScript コードを追加して、iPlanet 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 に準拠した 91 のタイムゾーンが記載されています。

次の例は、タイムゾーンテーブルの最初のいくつかのセクションを示しています。

BEGIN:VCALENDAR

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;19891029T110000Z;

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


前へ     目次     索引     DocHome     次へ     
Copyright © 2000 Sun Microsystems, Inc. Some preexisting portions Copyright © 2000 Netscape Communications Corp. All rights reserved.

Last Updated May 21, 2001