Чем объясняется эта разница во времени? - PullRequest
0 голосов
/ 25 апреля 2019

Я разработал приложение Windows Form на C #. Это приложение показывает дату и время.

Чтобы получить дату и время, я использую это свойство:

DateTime.Now

Однако время, полученное в приложении, на 1 час опережает время, отображаемое на панели задач Windows.

Пожалуйста, посмотрите на этот скриншот:

Time shown in application versus time shown in Windows

Вы можете увидеть разницу во времени там.

Реальное время - это время, указанное приложением, то есть 08: 38.

Я знаю, что у меня проблемы со временем в Windows. Может быть, что-то случилось после отключения электричества, но мне любопытно, какая разница. Я могу изменить настройки TimeZone, чтобы Windows могла показывать правильное время, однако, если я делаю это, приложение всегда показывает на 1 час меньше.

Любой совет, пожалуйста?

Ответы [ 3 ]

1 голос
/ 20 мая 2019

Вероятно, из-за перехода на летнее время ваш текущий часовой пояс, вероятно, кешируется. Несколько рекомендаций:

Попробуйте перезагрузить систему или перезапустить приложение.

Если это все еще не работает, вызовите System.Globalization.CultureInfo.ClearCachedData() для сброса кэшированного значения. После этого вы должны получить правильное время.

Ваши часы пошли назад в воскресенье, 7 апреля 2019 года, в 12:00:00 в полночь (Чили), поэтому задержка составляет один час.

0 голосов
/ 20 мая 2019

Попробуйте использовать

DateTimeOffset.Now

Из документов MS: Вы также можете использовать свойство DateTimeOffset.Now для получения текущей локальной даты и времени. Это позволяет однозначно выразить местное время как один момент времени, что, в свою очередь, делает это значение времени переносимым между компьютерами.

0 голосов
/ 20 мая 2019

У меня та же проблема, но в моем случае это потому, что двойная загрузка:

https://help.ubuntu.com/community/UbuntuTime#Multiple_Boot_Systems_Time_Conflicts

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...