TimeZoneNamesライブラリの作成者として、このようなことが起こる理由を説明できます。
まず、CLDRファイルのメタゾーンにAmerica/Phoenix
マップしますAmerica_Mountain
metaZones.xml
<timezone type="America/Phoenix">
<usesMetazone mzone="America_Mountain"/>
</timezone>
他のタイム ゾーンも同じメタ ゾーンにあります。
<timezone type="America/Denver">
<usesMetazone mzone="America_Mountain"/>
</timezone>
次に、英語用のen.xml
ファイルなどの各 CLDR 言語ファイルに、America_Mountain
ローカライズされた文字列を含む metazone エントリが表示されます。
<metazone type="America_Mountain">
<long>
<generic>Mountain Time</generic>
<standard>Mountain Standard Time</standard>
<daylight>Mountain Daylight Time</daylight>
</long>
<short>
<generic>MT</generic>
<standard>MST</standard>
<daylight>MDT</daylight>
</short>
</metazone>
そのため、CLDR にはアリゾナで DST が適用されるかどうかに関する情報はありません。アリゾナ州には過去に DST が実際にあったことを覚えておいてください。最後の 1967 年です。したがって、 Noda Timeで見られるような TZDB データがなければ、DST が特定の時点で有効かどうかを判断することはできません。
Jon's answerは、DST が Noda Time を使用して有効かどうかをテストする方法を示しています。結果が得られたら、それに応じて TimeZoneNames から標準文字列または夏時間文字列を選択できます。
一般名に関しては、通常、人間がタイム ゾーン全般を参照する場合に使用され、夏時間部分または標準時間部分のいずれも参照しません。この使用例の 1 つは、ここに示されているようなタイム ゾーンの選択です。