TimeZoneNames 라이브러리의 저자로서, 왜 이렇게되는지 설명 할 수 있습니다.
첫째, the CLDR metaZones.xml
file
<timezone type="America/Phoenix">
<usesMetazone mzone="America_Mountain"/>
</timezone>
다른 시간대의 America_Mountain
metazone에 America/Phoenix
지도는 같은 메타 영역에 또한 :
<timezone type="America/Denver">
<usesMetazone mzone="America_Mountain"/>
</timezone>
그런 다음 각 CLDR 언어 파일에서 같은 the en.xml
file을로 영어의 경우 현지화 된 문자열 인 America_Mountain
메타 존 항목이 표시됩니다.
<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>
DST가 애리조나 주에서 적용 가능한지 여부는 CLDR에 정보가 없습니다. 애리조나는 과거에 실제로 DST를 가졌습니다 - last in 1967. 따라서 Noda Time에서 찾을 수있는 TZDB 데이터가 없으면 특정 시점에 DST가 유효한지 여부를 결정할 수 없습니다.
Jon's answer은 Noda Time을 사용하여 DST가 유효한지 테스트하는 방법을 보여줍니다. 결과를 얻었 으면 그에 따라 TimeZoneNames에서 표준 또는 일광 문자열을 선택할 수 있습니다.
일반 이름은 일반적으로 인간이 표준 시간대를 나타낼 때 일반적으로 사용되며 일광 시간 부분 또는 표준 시간 부분이 아닙니다. 이에 대한 한 가지 유스 케이스는 here과 같이 시간대 선택에 있습니다.
https://github.com/mj1856/TimeZoneNames를 사용하고 싶습니까? 현재 귀하의 코드가 어떻게 생겼는지는 분명하지 않습니다. [mcve]가 도움이 될 것입니다. –