?
This document uses PHP Chinese website manual Release
一些時(shí)區(qū)縮寫并不很標(biāo)準(zhǔn),PostgreSQL使用 timezone_abbreviations 運(yùn)行時(shí)配置參數(shù)定義服務(wù)器可識(shí)別的時(shí)區(qū)縮寫集合。該配置參數(shù)可以被 任何數(shù)據(jù)庫(kù)用戶更改,但是其取值范圍只能由數(shù)據(jù)庫(kù)管理員更改,事實(shí) 上可用的值都是.../share/timezonesets/目錄中的文件名。 通過(guò)添加或修改其中的文件,管理員就可以控制可用的時(shí)區(qū)縮寫
timezone_abbreviations 可以被設(shè)為.../share/timezonesets/ 目錄下的任意文件名(文件名只允許包含字母)。禁止在 timezone_abbreviations 中使用非字母字符是為了防止讀取目錄之外 的文件以及其它不該讀取的文件。
時(shí)區(qū)縮寫文件中可以包含空白行和以# 開頭的注釋。非注釋行必須是以下格式:
time_zone_name offset time_zone_name offset D @INCLUDE file_name @OVERRIDE
time_zone_name 是被定義的縮寫名。 offset 是該時(shí)區(qū)相對(duì)于 UTC 偏移量(以秒計(jì)), 向東為正,向西為負(fù)。例如 -18000 表示在格林威治以西 5 小時(shí), 也就是美國(guó)東部標(biāo)準(zhǔn)時(shí)間。D表示該時(shí)區(qū)使用夏令時(shí)而不是標(biāo)準(zhǔn)時(shí)。 因?yàn)槟壳八幸阎臅r(shí)區(qū)偏移量都以 15 分鐘為單位,因此偏移量的秒數(shù)必須 是 900 的倍數(shù)。
@INCLUDE 語(yǔ)法用于包含.../share/timezonesets/ 目錄中的其它文件,可以嵌套包含,不過(guò)并不允許無(wú)限深度的嵌套。
@OVERRIDE語(yǔ)法表示后面項(xiàng)的定義可以覆蓋前面的項(xiàng),否則重復(fù)定義將導(dǎo)致錯(cuò)誤。
默認(rèn)安裝時(shí),Default 文件包含世界上幾乎所有不沖突的時(shí)區(qū)縮寫。 另外, Australia 和 India文件用于這些區(qū)域: 這些文件首先被包含在 Default文件中并在隨后按需修改或者添加時(shí)區(qū)。
為了便于參考,標(biāo)準(zhǔn)安裝也包含了Africa.txt, America.txt, 等文件,它們包含了所有zoneinfo 時(shí)區(qū)數(shù)據(jù)庫(kù)中的時(shí)區(qū)縮寫。 這些文件中的時(shí)區(qū)名定義可以復(fù)制到自定義的配置文件中。 需要注意的是,這些文件名不能直接 用于 timezone_abbreviations,因?yàn)檫@些文件名中包含句點(diǎn)。
Note: 如果在讀取時(shí)區(qū)數(shù)據(jù)集時(shí)出錯(cuò),將不會(huì)應(yīng)用任何新值,仍將使用舊的數(shù)據(jù)集。 如果這個(gè)錯(cuò)誤是在數(shù)據(jù)庫(kù)服務(wù)器啟動(dòng)時(shí)發(fā)生的,那么啟動(dòng)將失敗
Caution |
配置文件中的時(shí)區(qū)縮寫定義將會(huì)覆蓋PostgreSQL 內(nèi)置的非時(shí)區(qū)含義。例如Australia配置文件定義了 SAT(南澳洲標(biāo)準(zhǔn)時(shí)間),如果激活了該文件, 那么SAT 將不會(huì)被識(shí)別為星期六的縮寫。 |
Caution |
如果你修改 .../share/timezonesets/中的文件, 那么你必須自己手動(dòng)備份,因?yàn)閿?shù)據(jù)庫(kù)轉(zhuǎn)儲(chǔ)不會(huì)包含這個(gè)目錄的內(nèi)容。 |