2011-11-16 89 views
2

在我們的C#應用​​程序中,我們支持多種語言。現在如果應用程序語言是英語,並且我們的應用程序以非英語(例如西班牙語)安裝的操作系統。 當我嘗試使用TimeZoneInfo.GetSystemTimeZones()檢索SystemTime區域時,它以西班牙語言提供給我。是否有任何方法可以用英語獲取它,或者是否有任何通用解決方案。GetSystemTimeZone英語非英語操作系統

回答

2

TimeZoneInfo.GetSystemTimeZones Method

「如果你的應用程序需要在本地計算機上未找到時區,您可以創建一個使用CreateCustomTimeZone方法的重載定製時區有關詳細信息,請參閱如何創建時區不調整規則和如何:使用調整規則創建時區「。

此外,

「的GetSystemTimeZones方法返回的TimeZoneInfo的集合對象只在註冊表中定義的時區。它不包括時區使用CreateCustomTimeZone方法的重載創建的。」

+0

其實我想要相同的時區列表,但列表應顯示在Englisgh文化中,即我希望英文顯示名稱而不是任何其他語言。我不是自己添加任何自定義時區。 –

+0

DisplayName也是在同一頁面上處理的。 – Kris

1

嘗試暫時設置當前文化:

var orgCulture = Thread.CurrentThread.CurrentCulture; 
Thread.CurrentThread.CurrentCulture 
    = Thread.CurrentThread.CurrentUICulture 
     = new CultureInfo("en-us"); 

var zones = TimeZoneInfo.GetSystemTimeZones(); 
// get names here 

Thread.CurrentThread.CurrentCulture 
    = Thread.CurrentThread.CurrentUICulture 
     = orgCulture; 
+0

我還是不行!!!!!! –

+0

如果您需要幫助,請改善您的態度。 – jgauffin

+0

在我的評論中,你發現我的態度錯了。如果我確實傷害了你,我很抱歉。 –

0

爲什麼不使用DateTime.Now.ToLongDateString()?

+0

ToLongDateString()的instad還有其他函數可以使用..... – Liran