我已经用C#开发了Windows窗体应用程序。该应用程序显示日期和时间。
要获取我正在使用此属性的日期和时间:
DateTime.Now
但是,应用程序中的时间比Windows任务栏中显示的时间早1小时。
请查看以下屏幕截图:
您可以在那里看到时差。
实时时间是应用程序显示的时间,即08:38。
我知道我在Windows中的时间有问题。停电后可能发生了一些事情,但我对此有所好奇。我可以更改TimeZone设置,以便Windows可以显示正确的时间,但是,如果这样做,则应用程序总是少显示1小时。
有什么建议吗?
答案 0 :(得分:1)
这可能是由于夏令时,您当前的时区可能已被缓存。一些建议:
尝试重新启动系统或重新启动应用程序。
如果仍然不起作用,请调用System.Globalization.CultureInfo.ClearCachedData()
以重置缓存的值。之后,您应该获得正确的时间。
您的时钟在2019年4月7日(星期日)午夜12点(智利)倒退,这就是为什么要延迟一小时的原因。
答案 1 :(得分:0)
我有同样的问题,但就我而言,是因为双重引导:
https://help.ubuntu.com/community/UbuntuTime#Multiple_Boot_Systems_Time_Conflicts
答案 2 :(得分:0)
尝试使用
DateTimeOffset.Now
从MS文档: 您还可以使用DateTimeOffset.Now属性检索当前的本地日期和时间。它允许将本地时间明确地表示为单个时间点,从而使该时间值可以跨计算机移植。