문제

Windows의 시간대 이름에 대한 컴파일 된 번역 목록을 아는 사람이 있습니까? 독일어, 프랑스어 및 스페인어로 75 명 정도가 필요합니다. 또는 .NET을 사용하여 그러한 목록을 컴파일하는 방법은 무엇입니까?

예제 형식 : (GMT+01 : 00) 베오그라드, Bratislava, Budapest, Ljubljana, Prague

도움이 되었습니까?

해결책

레지스트리에는 모든 시간 영역의 목록이 있습니다.

hkey_local_machine 소프트웨어 Microsoft Windows NT CurrentVersion Time Zones

다음을 사용하여로드 할 수 있습니다.

ArrayList zones = new ArrayList();

using( RegistryKey key = Registry.LocalMachine.OpenSubKey(
    @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones" ) )
{
    string[] zoneNames = key.GetSubKeyNames();

    foreach( string zoneName in zoneNames )
    {
        using( RegistryKey subKey = key.OpenSubKey( zoneName ) )
        {
            TimeZoneInformation tzi = new TimeZoneInformation();
            tzi.Name = zoneName;
            tzi.DisplayName = (string)subKey.GetValue( "Display" );
            tzi.StandardName = (string)subKey.GetValue( "Std" );
            tzi.DaylightName = (string)subKey.GetValue( "Dlt" );
            object value = subKey.GetValue( "Index" );
            if( value != null )
            {
                tzi.Index = (int)value;
            }

            tzi.InitTzi( (byte[])subKey.GetValue( "Tzi" ) );

            zones.Add( tzi );
        }
    }
}

TimeZoneInformation은 쉽게 액세스 할 수있는 정보를 저장하는 클래스 일뿐입니다.

당신이 찾고있는 설명은 디스플레이 값입니다.

다른 팁

시간대 데이터베이스를 얻으십시오 https://iana.org/time- zones 또는 ftp://ftp.iana.org/tz (또는 웹의 다른 많은 소스). 이들은 UN ISO 코드 및 영어 국가/도시 이름으로 키워질 것입니다.

그런 다음 그것들을 번역하십시오 http://www.unicode.org/cldr/

예를 들어

Microsoft Terminology 컬렉션은입니다 다운로드 할 수 있습니다 ~을 위한 비상업적 사용.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top