2011-10-10 59 views
1

如果當前系統時間格式爲HH:mm:ss,那麼如果用戶在應用程序仍在運行時將其更改爲hh:mm:ss tt,則必須在特定操作期間在我的應用程序上顯示當前時間。它仍然在HH:mm:ss中顯示時間。爲什麼我從CultureInfo獲取不正確的時間格式?

我嘗試使用DateTime.Now.ToLongTimeString()DateTime.Now.ToString(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);

有什麼缺失?任何建議來解決這個問題?

回答

4

我強烈懷疑該框架只是緩存用於時間格式的模式,並且在重新啓動應用程序之前通常不會再次選取它。

您可以嘗試撥打ClearCachedData並查看它是否會返回系統時間格式的操作系統。 (我不知道是否有任何東西可以監視,以便在的格式發生變化 - 當然,您不希望一直清除緩存。)

+0

感謝Jon,'ClearCacheData'但是,正如你所說我需要弄清楚何時清除緩存。 –

+0

如果您能夠收聽窗口消息,那麼偵聽WM_SETTINGCHANGE會告訴您何時需要清除緩存。 –

相關問題