
У меня возникла странная проблема с системными часами. Иногда, когда я запускаю Windows 10, мои часы показывают время, которое опережает текущее время на 5 часов. Так что если там, где я живу (восточный часовой пояс), сейчас полдень, часы показывают 5 вечера. Они также переходят на летнее время, оставаясь на 5 часов впереди.
Я проверил настройки часового пояса, и он установлен на правильный часовой пояс. У меня установлено интернет-время для синхронизации с time.nist.gov
, и при ручной синхронизации времени часы устанавливаются правильно, хотя при этом появляется следующее сообщение об ошибке:
«Произошла ошибка при синхронизации Windows с time.nist.gov. Операция завершена, поскольку истекло время ожидания».
Эта проблема началась сразу после того, как я стер жесткий диск и переустановил Windows 10 с нуля, так что она не вызвана ничем, что я устанавливал с тех пор. Это происходит только при запуске Windows, но не каждый раз. В настоящее время у меня установлена Ubuntu 16.04 в конфигурации с двойной загрузкой (проблема началась до того, как я установил Ubuntu), и я не видел никаких подобных проблем с часами Ubuntu.
Я просматривал в интернете похожие вопросы, связанные со временем, но ни один из них не соответствовал моему.Этот вопросочень похож на мой, но проблема там была вызвана отключением аппаратных часов, а часы, отображаемые в BIOS на моем компьютере, установлены на правильное время.
Что мне кажется странным, так это то, что времяточнопять часов разницы, ни минутой больше, даже с поправкой на летнее время. Мне кажется, что Windows иногда синхронизируется с неправильным часовым поясом, но я понятия не имею, как это проверить или исправить.
ОБНОВЛЕНИЕ: Оказывается, переключение с Ubuntu на Windows каждый раз приводит к смещению на 5 часов, так что проблема действительно была в установке аппаратных часов на универсальные/локальные в Ubuntu/Windows соответственно.
решение1
Я бы очень подозревал, что Ubuntu и Windows не согласны по поводу того, является ли hwclock локальным временем или UTC. Конфликт обычно возникает из-за того, что Linux использует hwclock, установленный в UTC, в то время как Windows использует hwclock, установленный в локальном часовом поясе.
Если вы хотите, чтобы ваши hwclock показывали время в вашем часовом поясе, то вам нужно будет изменить linux так, чтобы он не был UTC, что означает, что linux должен использовать localtime. Если вас устраивает, что ваш hwclock (BIOS) будет в UTC, то измените Windows на UTC.
Отздесь:
Заставить Windows использовать UTC
Примечание:Первоначально этот метод не поддерживался в Windows Vista и Server 2008, но вернулся в Vista SP2, Windows 7, Server 2008 R2 и Windows 8/8.1.
Чтобы MS Windows рассчитывала время по аппаратным часам как UTC.
Создайте файл
WindowsTimeFixUTC.reg
со следующим содержимым, а затем дважды щелкните по нему, чтобы объединить его содержимое с реестром:Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=dword:00000001
Примечание:Служба времени Windows будет по-прежнему записывать локальное время в RTC независимо от указанного выше параметра реестра при завершении работы, поэтому удобно отключить службу времени Windows с помощью этой команды (если синхронизация времени по-прежнему требуется, а в Windows используется любое стороннее решение для синхронизации времени):
sc config w32time start= disabled
Отмена изменений.
Вы можете создать файл со следующим содержимым, а затем дважды щелкнуть по нему, чтобы объединить исходные изменения, как указано выше:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation] "RealTimeIsUniversal"=-
Если служба времени Windows была отключена, включите ее снова с помощью команды:
sc config w32time start= demand
Заставить Linux использовать «местное» время
Чтобы сообщить вашей системе Ubuntu, что аппаратные часы установлены на «местное» время:
Системы до Ubuntu 15.04 (например, Ubuntu 14.04 LTS):
отредактируйте /etc/default/rcS и добавьте или измените следующий раздел
#Set UTC=yes if your hardware clock is set to UTC (GMT) UTC=no
Системы Ubuntu 15.04 и выше (например, Ubuntu 16.04 LTS): откройте терминал и выполните следующую команду:
timedatectl set-local-rtc 1