2010-05-27 4 views
3

시간대 목록을 가져 와서 드롭 다운 목록을 채울 수 있습니다. .NET 3.5에서는 TimeZoneInfo 네임 스페이스가 있습니다. 코드는 다음과 같습니다.GetSystemTimeZones()의 세계화

ReadOnlyCollection<TimeZoneInfo> timeZones = TimeZoneInfo.GetSystemTimeZones(); 
foreach (TimeZoneInfo timeZone in timeZones) 
    string name = timeZone.DisplayName 

그러나 "DisplayName"은 영어입니다. cultureInfo를 전달하면 다른 언어를 반환 할 수 있습니까? Thread.CurrentCulture와 CurrentUICulture를 설정하려고 시도했지만 작동하지 않았습니다. 내가 놓친 게 있니?

답변

3

OS에 따라 다릅니다. 스트레이트 MSDN blog에서 :

존재 같은 Windows XP 및 Windows Server 2003, 에만 표시, 표준 등의 하위 수준 플랫폼 및 DLT 키에. 디스플레이, 표준 및 Dlt 키 값은 시스템의 기본 언어 인 에만 국한됩니다. Windows 표준 시간대 레지스트리 아키텍처로 인해 CurrentUICulture 설정은 이러한 TimeZoneInfo 속성 값에 영향을주지 않습니다.

win xp 및 server 2003에서는 운이 좋지 않은 것으로 보입니다.

Vista, win7 및 2008에서는 지역 설정을 변경하여 다른 언어를 사용할 수 있습니다. 다국어 사용자 인터페이스 (MUI)를 지원 열쇠가 될 것으로 보인다 :

같은 윈도우 비스타와 같은

MUI 지원 운영 체제 간접적 시스템 지역 운영에 의해 제어 이다 MUI_Display, MUI_Std 및 MUI_Dlt 키를 포함

설정

EDIT : CurrentUICulture가 해당 키의 출력 언어를 변경하지 않도록 설정하여 win7에 대한 빠른 테스트를 수행했습니다. 지역 설정을 변경하는 것이 유일한 방법 인 것 같습니다. 이렇게하려면 세션을 닫아야 만 효과가 나타납니다.