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 機碼的子機碼擷取所有可用的時區資訊"
所以也就是如果要取得其他語系的時區資料,要改變系統的預設語系才會有效果,而改變系統預設語系的做法網路上有很多文章可參考,在此就不做說明囉!
沒有留言:
張貼留言