为什么我从 CultureInfo 得到的时间格式不正确?
我必须在某些操作期间在应用程序上显示当前时间,如果当前系统时间格式为 HH:mm:ss
那么如果用户将其更改为 hh:mm:ss tt
当应用程序仍在运行时,它不会接受更改!它仍然以 HH:mm:ss
格式显示时间。
我尝试使用 DateTime.Now.ToLongTimeString()
和 DateTime.Now.ToString(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);
是否缺少任何内容?有什么建议来解决这个问题吗?
I have to display a current time on my application during certain operations, if current system time format is HH:mm:ss
then if user change it to hh:mm:ss tt
when app is still running it does not pick up the changes! It still displays time in HH:mm:ss
.
I tried using DateTime.Now.ToLongTimeString()
and DateTime.Now.ToString(System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern);
Is there anything missing? Any suggestions to fix the problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我强烈怀疑该框架只是缓存了用于时间格式的模式,并且通常不会再次拾取它,直到您重新启动应用程序。
您可以尝试调用
ClearCachedData
< /a> 并查看它是否返回操作系统以获取系统时间格式。 (我不知道当格式发生变化时是否有任何东西可以监控来计算出来——当然,你不想一直清除缓存。)I strongly suspect that the framework is simply caching the pattern used for the time format, and won't normally pick it up again until you restart the app.
You could try calling
ClearCachedData
and see if it then goes back to the OS for the system time format. (I don't know whether there's anything you can monitor to work out when the format has changed - you don't want to be clearing the cache all the time, of course.)