让我们设想一下这个小程序运行:
while (true) { Console.WriteLine($"{DateTime.UtcNow} -> {DateTime.Now} tz={TimeZone.CurrentTimeZone.StandardName} / {TimeZoneInfo.Local.StandardName}"); await Task.Delay(TimeSpan.FromSeconds(1)); }
当程序运行时,当我更改系统的时区时,应用程序看不到更改。 时区和时间就好像时区没有改变。
为了让应用程序显示新的时间和时区,我需要重新启动应用程序。
如果我改变了系统时间,则立即收到时间改变。
线程在被告知这样做的时候没有睡觉
在C#/ VB.NET或C ++ Win32中启用/禁用Aero
开发以pipe理员身份运行命令的应用程序
使用Windows传真服务器扩展发送传真 – faxcomexlib
如果你能用三个问题来帮助我,那将是非常好的:
这是任何地方logging?
为什么在应用程序正在运行时没有select时区更改?
我可以做任何事情,让应用程序在运行时select时区更改吗?
下面是一个小小的屏幕截图,用于显示.NET应用程序使用与操作系统不同的时间:
BTW。 在RaspBerry Pi上的Windows IOT上,我的实验显示,如果我重新启动应用程序,它将显示新的时区,但是“旧”时间。 重新启动系统后,新的时间将被提取。
分组时,如何从Linq查询返回IGrouping
最小化文本块的大小
C#挂钩Windows进程来检查debugging进程
如何获取mscorlib.ni.lib(.Net Framework 3.5)的PDB文件
Environment.GetFolderPath(Environment.SpecialFolder.System)和Environment.SystemDirectory for System32文件夹之间的区别
你可以检查下面的msdn 链接 。 它明确规定如下:
致电者注意事项:本地时区数据在CurrentTimeZone首次用于检索时区信息后被缓存。 如果系统的本地时区随后发生更改,则CurrentTimeZone属性不会反映此更改。 如果您需要在应用程序运行时处理时区更改,请使用TimeZoneInfo类并调用其TimeZoneInfo.ClearCachedData方法。
这是任何地方记录? 是的,如上所述。
为什么在应用程序正在运行时没有选择时区更改? 因为时区信息被缓存。
我可以做任何事情,让应用程序在运行时选择时区更改吗? 是的,通过使用TimeZoneInfo类并调用它的TimeZoneInfo.ClearCachedData方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。