微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

DateTime.Now vs系统时间

让我们设想一下这个小程序运行:

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

如何在.NET应用程序中从FTP协议获取目录文件大小

开发以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] 举报,一经查实,本站将立刻删除。

相关推荐