Часы на моем Mac меняются при загрузке в Windows

17

Я использую iMac с OS X Leopard и Windows 7 Release Candidate (используя bootcamp). Иногда, когда я загружаюсь в Windows, а затем снова загружаюсь в OSX, я обнаруживаю, что Windows изменила часы системы, чтобы использовать неверное время. У меня была эта проблема при использовании Vista с bootcamp тоже.

Как я могу предотвратить это?

Брайан Уиллис
источник

Ответы:

17

Изменить: после нескольких дней использования метода, который я первоначально опубликовал, я обнаружил, что RealTimeIsUniversalфлаг, как не поддерживаемый остаток от Windows NT, на самом деле довольно ненадежный и непрактичный в целом. Время от времени, с кажущимися случайными интервалами, часы Windows возвращались из UTC в местное время, что было чрезвычайно раздражающим (и приводило к нескольким коммитам git, которые выглядят так, как будто они из будущего в журнале коммитов). Это привело меня к поиску другого решения ...

В общем, проблема в том, что, как упоминал Джон Фухи в комментарии, Windows сохраняет часы по местному времени, в то время как OS X поддерживает часы по UTC (используя указанный часовой пояс в качестве модификатора, чтобы указать правильное время). Чтобы это исправить, одна из операционных систем должна будет наклоняться назад и отслеживать время, используя метод другой системы.

Теперь, самый надежный метод, который я нашел, чтобы решить эту проблему до сих пор, состоит в том, чтобы заставить OS X переключать свои часы на местное время с UTC всякий раз, когда он выключается, и затем переключать его обратно при каждом запуске. Точный способ сделать это можно найти в вики проекта OSx86 , что довольно интересно. (Небольшое примечание: есть некоторые вещи, которые, похоже, относятся к OSx86, а именно, LaunchDaemon plist для инструкций Leopard. Однако я опробовал дословно метод Leopard на моем MacBook Pro, и он работает просто отлично. Другими словами, просто следуйте инструкциям в точности так, как написано, и не обращайте внимания на любые ссылки на OSx86 в файлах - они не имеют значения.)

Вот старое решение, если вы хотите попробовать его. Будьте осторожны: это никогда не обновлялось для правильной работы с более новыми версиями Windows, так что это очень ненадежно, как я выяснил трудным путем ...

Другой способ синхронизации часов - заставить Windows использовать UTC через взлом реестра (трюк, который я нашел из подсказок Mac OS X ):

  1. Запустите RegEdit ( Пуск -> Выполнить ... , введите regedit)
  2. Перейдите к « HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation».
  3. В меню « Правка» выберите « Создать» -> «Значение DWORD» .
  4. Назовите это значение " RealTimeIsUniversal".
  5. Дважды щелкните RealTimeIsUniversalи введите 1значения данных.

В следующий раз, когда вы загрузитесь в Windows, часы должны совпадать с часами Mac OS X, и вы все равно можете иметь часовой пояс Windows, совпадающий с часовым поясом, установленным в Mac OS X.

HBW
источник
Вау, отличный совет для тех ситуаций двойной загрузки!
Грег Хьюгилл
Я использовал взлом реестра под Windows 7 в течение последних нескольких недель. Все идет нормально. Он даже правильно переключился при переходе на летнее время.
kdmurray
3

Проверьте настройки синхронизации часов в Windows. Это может быть настройка часов с помощью интернет-источника и смена часов.

JP Alioto
источник
У меня была эта проблема - OS X был настроен на GMT + 1, и я забыл, что Windows все еще был настроен на GMT + 9.5 ..
dbr
0

Убедитесь, что вы используете один и тот же часовой пояс в обеих операционных системах. Если один из них имеет другой часовой пояс, он может изменить системные часы, чтобы показать свой часовой пояс, который будет отличаться от времени другой ОС.

Дэн Уокер
источник
2
Mac (например, linux / unix) сохраняют системные часы в формате UTC и применяют часовой пояс в качестве модификатора для отображения. Windows хранит системные часы по местному времени. Следовательно, если Windows понимает, что ее часы «неправильные», она это исправит. Таким образом, одним из обходных путей будет намеренно установить часовой пояс Windows на UTC.
Джон Фухи
0

У меня есть сценарий входа на стороне Mac - в моем случае Leopard - это простой сценарий оболочки для установки часов через Интернет:

#!/bin/sh
ntpdate -uvs time.apple.com
exit 0

Поэтому, когда вы загружаетесь в Windows, он отправляет часы на 5 часов вперед, если вы находитесь на восточном побережье, и когда вы перезагружаетесь в Mac OS X, он переводит часы обратно в UTC.

Приветствия ...

Джим Ферр


источник
Как настроить автоматический запуск при входе в систему?
Брайан Уиллис