4

この質問は、tzinfo(別名Olsonタイムゾーンデータベース)のタイムゾーンの標準リストに関するものです。

例1: US/Easternの代わりにAmerica/New_YorkまたはAmerica/Detroit(「模範的な都市」として知られています。http://www.w3.org/International/docs/timezones/#tzidsを参照)が使用されていることに気付きました。

例2:カナダでは、山岳部標準時は通常、カナダ/山ではなくアメリカ/エドモントンとして記述されます。山岳部標準時のブリティッシュコロンビア州の一部がありますが、それらのタイムゾーンはアメリカ/エドモントン(アルバータ州)として指定されています。

このような場合、国/ゾーンバージョンの代わりに地域/模範都市オプションが使用されるのはなぜですか?そもそも国/ゾーンバージョンが作成されたのには理由があったに違いありませんが、それが好ましい方法ではないのに、なぜそこにあるのでしょうか。

これは主に、国に複数のタイムゾーンがある場合の問題です。

一方が他方よりも優先される理由を示すベストプラクティスはどこかにありますか?

(PSこれは、関連性のない、または役に立たない結果がすべて得られるため、Googleにとって難しい問題です。私が見つけた最も近いものは、夏時間とタイムゾーンのベストプラクティスでしたが、この問題は解決されていませんでした。)

編集:1つの都市に2つのタイムゾーンを設定できますか?「すべての人がタイムゾーンに正規の大陸/都市表記を使用しているわけではないため(たとえば、古い米国/太平洋表記を使用する傾向があります。これは引き続きサポートされていますが、America / Los_Angelesと同等です)。「米国/太平洋」が古いという彼の主張は、それが新しいという私の間接的な仮定と矛盾しますが、それでも答えではありません。

4

1 に答える 1

6

TheoryOlson データベースと共に配布されるファイルには、次の情報が含まれています。

タイム ゾーン ルール ファイルの名前

タイム ゾーン ルール ファイルの命名規則は、次の目標の間でバランスをとろうとします。

  • 1970 年以降、時計がすべて合意しているすべての国の地域を一意に識別します。これは、意図された用途 (地方の常用時を保持する静的な時計) にとって不可欠です。

  • その領域がどこにあるかを人間に示します。これは [ sic ] 使用を単純化します。

  • 政治的変化の存在下で堅牢であること。これにより、更新と下位互換性のハックの数が減ります。たとえば、国名が変更された場合 (ザイール⟶コンゴなど) や場所が変更された場合 (香港が英国植民地から中国に変更された場合) に非互換性が生じるのを避けるため、通常、国名は使用されません。

  • さまざまな実装に移植できます。これにより、テクノロジーの使用が促進されます。

  • 世界中で一貫した命名規則を使用してください。これにより、使用とメンテナンスの両方が簡素化されます。

この命名規則は、経験の浅いユーザーが自分で TZ 値を選択するために使用することを意図したものではありません (もちろん、既存の設定を調べて再利用することはできます)。ディストリビューターは、名前を説明するドキュメントおよび/または簡単な選択インターフェイスを提供する必要があります。一例として、このディストリビューションで提供される「tzselect」プログラムを参照してください。

名前は通常、AREA/LOCATION の形式をとります。ここで、AREA は大陸または海の名前であり、LOCATION はその地域内の特定の場所の名前です。北アメリカと南アメリカは「アメリカ」という同じ地域を共有しています。典型的な名前は、「アフリカ/カイロ」、「アメリカ/ニューヨーク」、「パシフィック/ホノルル」です。

場所の名前を選択する際に使用される一般的な規則を、重要度の高い順に示します。

  • 有効な POSIX ファイル名コンポーネント (つまり、' ' 以外の名前の部分) のみを使用してください/。ファイル名コンポーネント内では、ASCII 文字の ' .'、' -'、および ' _' のみを使用してください。数字は使用しないでください。POSIX TZ 文字列とあいまいになる可能性があります。ファイル名コンポーネントは 14 文字を超えたり、' -' で開始したりしてはなりません。たとえば、「Bundar_Seri_Begawan」より「Brunei」を優先します。
  • 国ごとのタイム ゾーン ルール セットごとに、少なくとも 1 つの場所を含めます。そのような場所は 1 つあれば十分です。ISO 3166 (ファイル iso3166.tab を参照) を使用して、国かどうかを判断します。ただし、ブーベ島のような無人の ISO 3166 地域では、現地時間が定義されていないため、場所は必要ありません。
  • ある国の地域のすべての時計が 1970 年以降一致している場合は、サブ地域の時計が 1970 年以前に一致していなくても、わざわざ複数の場所を含めないでください。そうしないと、これらのテーブルが厄介なほど大きくなります。
  • 名前があいまいな場合は、あいまいさの少ない代替案を使用してください。たとえば、多くの都市は San Jose と Georgetown と名付けられているため、'San_Jose' よりも 'Costa_Rica' を、'Georgetown' よりも 'Guyana' を優先します。
  • 場所をコンパクトに保ちます。国や地域ではなく、都市や小さな島を使用して、将来のタイム ゾーンの変更によって場所が異なるタイム ゾーンに分割されないようにします。たとえば、フランスには複数のタイム ゾーンがあるため、「フランス」よりも「パリ」を優先します。
  • 主流の英語のスペルを使用します。たとえば、「Roma」よりも「Rome」を優先し、本名 (ギリシャ文字を使用) よりも「Athens」を優先します。POSIX ファイル名の制限により、この規則が推奨されます。
  • 国のタイム ゾーンで最も人口の多い場所を使用します。たとえば、「北京」よりも「上海」を優先します。人口が似ている場所の中から、最もよく知られている場所を選びます。たとえば、「ミラノ」よりも「ローマ」を好みます。
  • 単数形を使用します。たとえば、'Canary' より 'Canaries' を優先します。
  • '_Islands' や '_City' などの一般的な接尾辞は、曖昧にならないように省略してください。たとえば、'Cayman_Islands' よりも 'Cayman' を、'Guatemala_City' よりも 'Guatemala' を優先しますが、'Mexico' よりも 'Mexico_City' を優先します。なぜなら、メキシコにはいくつかのタイム ゾーンがあるからです。
  • ' _' を使用してスペースを表します。
  • 名前の略語から' .' を省略します。たとえば、'St._Helena' よりも 'St_Helena' を優先します。
  • 確立された名前が上記の規則にわずかに違反するだけの場合は、変更しないでください。たとえば、ミラノの人口がローマよりも若干多くなったという理由だけで、既存の名前 'Rome' を 'Milan' に変更しないでください。
  • 名前が変更された場合は、古いスペルをbackwardファイルに入れます。

このファイルzone.tabには、タイム ゾーン ルール ファイルの命名に使用される地理的な場所がリストされています。これは、地理的地域の正規名の完全なリストを意図しています。


メーリング リストで最近 (2012 年 8 月) tz@iana.org、「北京よりも上海を優先する」というガイドラインについて論争があったことに注意してください。

于 2012-08-17T19:48:36.033 に答える