var dateFormats=CultureInfo.CurrentCulture
.DateTimeFormat;
var timeZones = TimeZoneInfo.GetSystemTimeZones();
foreach (TimeZoneInfo timeZone in timeZones)
{
Console.WriteLine(timeZone.DisplayName)
}
那如果要取得英文或日文的時區資料呢?
網路上有人貼了一段寫法
var cultureinfo = CultureInfo.
CreateSpecificCulture("en-US");
var dateFormats = cultureinfo.DateTimeFormat;
var timeZones = TimeZoneInfo.GetSystemTimeZones();
foreach (TimeZoneInfo timeZone in timeZones)
{
Console.WriteLine(timeZone.DisplayName)
}
借由建立一個指定語系的CultureInfo,來做到變換時區語言的效果
但其實這段程式碼是不會Work的
我們可以看MSDN上關於TimeZoneInfo.GetSystemTimeZones()的說明
http://msdn.microsoft.com/zh-tw/library/system.timezoneinfo.getsystemtimezones.aspx
"GetSystemTimeZones 方法會從登錄中 HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Time Zones 機碼的子機碼擷取所有可用的時區資訊"
所以也就是如果要取得其他語系的時區資料,要改變系統的預設語系才會有效果,而改變系統預設語系的做法網路上有很多文章可參考,在此就不做說明囉!
沒有留言:
張貼留言