尊重 Windows 时间格式的即时更改
我正在开发一个 C# 应用程序,该应用程序尝试尊重其运行系统的时间格式。 如果 Windows 控制面板更改为 24 小时格式,即应用程序显示时间的格式。无论如何,它都会成功执行此操作,但只有在应用程序运行之前更改时间格式时才会起作用。 如果您在应用程序运行时更改 Windows 时间格式,它将不会使用更新后的格式。
是否有任何类型的 Windows 事件或其他方式来检索最新的时间格式? 我们当前使用 DateTimeFormatInfo LongTimePattern,因为它会根据我们处于 12 小时还是 24 小时时间而变化。
I am working on a C# app that tries to respect the time format of the system it is running on. If the Windows control panel is changed to 24 hour format, that is the format the app will display time in. Anyway, it does this successfully, except it will only work if the time format is changed before the app is run. If you change the Windows time format while the app is running, it will not use the updated format.
Is there any kind of Windows event or other way to retrieve the latest time format? We currently use the DateTimeFormatInfo LongTimePattern because it changes based on whether we are in 12 or 24 hour time.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
Microsoft.Win32 命名空间中有一个 SystemEvents 类,其中包含一组可以订阅的静态事件。 您需要订阅 UserPreferenceChanged 事件:
There is a class
SystemEvents
in theMicrosoft.Win32
namespace which has a set of static events you can subscribe to. You'll want to subscribe to the UserPreferenceChanged event: