2009-03-05 61 views
4

有誰知道Windows中的時區名稱翻譯的編譯列表?我需要德語,法語和西班牙語全部75個左右。或者,我將如何使用.Net來編譯這樣的列表?任何人都知道翻譯時區描述的來源?

實施例的格式:(GMT + 01:00)貝爾格萊德,布拉迪斯拉發,布達佩斯,盧布爾雅那,布拉格

回答

1

沒有在註冊表中的所有時區的列表:

HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Windows NT \ CURRENTVERSION \時區

可以使用哪種方式加載:

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只是一個存儲信息以方便訪問的類。

您正在查找的說明位於「顯示」值中。

+0

這個答案在幾個方面似乎是錯誤的。首先,OP要求翻譯的名字。其次,您可以簡單地使用TimeZoneInfo.GetSystemTimeZones()而不是顯示的代碼。 – 2016-03-30 19:32:54

相關問題