有誰知道Windows中的時區名稱翻譯的編譯列表?我需要德語,法語和西班牙語全部75個左右。或者,我將如何使用.Net來編譯這樣的列表?任何人都知道翻譯時區描述的來源?
實施例的格式:(GMT + 01:00)貝爾格萊德,布拉迪斯拉發,布達佩斯,盧布爾雅那,布拉格
有誰知道Windows中的時區名稱翻譯的編譯列表?我需要德語,法語和西班牙語全部75個左右。或者,我將如何使用.Net來編譯這樣的列表?任何人都知道翻譯時區描述的來源?
實施例的格式:(GMT + 01:00)貝爾格萊德,布拉迪斯拉發,布達佩斯,盧布爾雅那,布拉格
沒有在註冊表中的所有時區的列表:
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只是一個存儲信息以方便訪問的類。
您正在查找的說明位於「顯示」值中。
從https://iana.org/time-zones或ftp://ftp.iana.org/tz(或網絡上的許多其他源)獲取時區數據庫。這些將在聯合國ISO代碼和英語國家/地區名稱
,然後將它們從http://www.unicode.org/cldr/
例如翻譯被鍵入
對於non-commercial use,Microsoft術語集合是available for download。
這個答案在幾個方面似乎是錯誤的。首先,OP要求翻譯的名字。其次,您可以簡單地使用TimeZoneInfo.GetSystemTimeZones()而不是顯示的代碼。 – 2016-03-30 19:32:54