Modifica: Dopo alcuni giorni di utilizzo del metodo che avevo pubblicato inizialmente, ho scoperto che la RealTimeIsUniversal
bandiera, come avanzi non mantenuti da Windows NT, è in realtà piuttosto traballante e poco pratica in generale. Di tanto in tanto, a intervalli apparentemente casuali, l'orologio di Windows tornava dall'ora UTC all'ora locale, il che era estremamente fastidioso (e si traduceva in alcuni commit git che sembrano venire dal futuro nel registro di commit). Questo mi ha portato a cercare un'altra soluzione ...
In generale, il problema è che, come menzionato da John Fouhy in un commento, Windows mantiene l'orologio nell'ora locale, mentre OS X mantiene l'orologio in UTC (utilizzando il fuso orario specificato come modificatore per fornire l'ora corretta). Per risolvere questo problema, uno dei sistemi operativi dovrà piegarsi all'indietro e tenere traccia del tempo usando il metodo dell'altro sistema.
Ora, il metodo più affidabile che ho trovato per risolvere questo problema finora è fondamentalmente fare in modo che OS X passi l'orologio all'ora locale da UTC ogni volta che si spegne e poi lo riattivi ogni volta che si avvia. Il metodo esatto per farlo può essere trovato nel wiki del progetto OSx86 , abbastanza interessante. (Una piccola nota: ci sono alcune cose che sembrano essere specifiche per OSx86, vale a dire il plist di LaunchDaemon per le istruzioni Leopard. Tuttavia, ho provato il metodo Leopard alla lettera sul mio MacBook Pro, e funziona benissimo. In altre parole, solo segui le istruzioni esattamente come scritto e non preoccuparti dei riferimenti a OSx86 nei file: sono irrilevanti.)
Ecco la vecchia soluzione, se vuoi provarla. Attenzione però: questo non è mai stato aggiornato per funzionare correttamente con le versioni più recenti di Windows, quindi è molto inaffidabile, come ho scoperto nel modo più difficile ...
Un altro modo di sincronizzare gli orologi è forzare Windows a utilizzare UTC attraverso un hack del registro (un trucco che ho trovato dai suggerimenti di Mac OS X ):
- Avvia RegEdit ( Start -> Esegui ... , digita
regedit
)
- Passare a "
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
".
- Dal menu Modifica , selezionare Nuovo -> Valore DWORD .
- Denominare questo valore "
RealTimeIsUniversal
".
- Fare doppio clic su
RealTimeIsUniversal
e inserire 1
per i dati del valore.
Al prossimo avvio in Windows, l'orologio dovrebbe corrispondere all'orologio per Mac OS X e puoi sempre far sì che il fuso orario di Windows corrisponda al fuso orario impostato in Mac OS X.