Sun Java System Calendar Server 管理指南 |
第 17 章
管理 Calendar Server 時區本附錄說明 Sun ONE Calendar Server 如何定義與處理時區,包括:
如需有關時區特性和參數的更多資訊,請參閱 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 使用 America/Los_Angeles TZID 來識別太平洋沿岸標準時區 (PST/PDT),如圖 17-1 所示。TZNAME 特性是時區的縮寫表示法,例如使用 PST (太平洋沿岸標準時間) 表示 America/Los_Angeles 時區。
識別日光節約時間 (DST) 的時區 (例如 America/Los_Angeles) 包含兩個子元件:STANDARD (標準時間) 及 DAYLIGHT (DST)。X-NSCP-TZCROSS 清單包含一系列指示時區何時該在 DST (Daylight) 和標準 (STANDARD) 時間之間進行切換變更的日期。
RRULE 特性定義 STANDARD 和 DAYLIGHT 規則的型樣。TZOFFSETFROM 和 TZOFFSETTO 特性定義 DST 至標準或標準至 DST 的變更發生前後與 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 Server,使其在 Calendar Express 使用者介面中可供使用。例如,您可能要為 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
其中 language 指定您的站點使用的語言之目錄。例如:en (英文),或 fr (法文)。
如下所示,在 i18n.xsl 檔案中增加新項目:
<xsl:when test="$tzid=TimeZoneArea/TimeZoneName"
TimeZoneArea/TimeZoneName</xsl:when>其中:
TimeZoneArea 為某個地理區域:非洲、美洲、亞洲、大西洋、澳大利亞、歐洲或太平洋。
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 四小時,偏移應為 "-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
其中: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,以使時區變更生效。