这个时差的解释是什么?

时间:2019-04-25 12:52:15

标签: windows winforms datetime

我已经用C#开发了Windows窗体应用程序。该应用程序显示日期和时间。

要获取我正在使用此属性的日期和时间:

DateTime.Now

但是,应用程序中的时间比Windows任务栏中显示的时间早1小时。

请查看以下屏幕截图:

Time shown in application versus time shown in Windows

您可以在那里看到时差。

实时时间是应用程序显示的时间,即08:38。

我知道我在Windows中的时间有问题。停电后可能发生了一些事情,但我对此有所好奇。我可以更改TimeZone设置,以便Windows可以显示正确的时间,但是,如果这样做,则应用程序总是少显示1小时。

有什么建议吗?

3 个答案:

答案 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属性检索当前的本地日期和时间。它允许将本地时间明确地表示为单个时间点,从而使该时间值可以跨计算机移植。