2011-10-10 57 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会告诉您何时需要清除缓存。 –

相关问题