Edit: Após alguns dias de uso do método que eu originalmente postei, descobri que a RealTimeIsUniversal
bandeira, como sobra não mantida do Windows NT, é na verdade bastante esquisita e impraticável em geral. De vez em quando, em intervalos aparentemente aleatórios, o relógio do Windows revertia do UTC para a hora local, o que era extremamente irritante (e resultava em alguns commits git que parecem ser do futuro no log de commit). Isso me levou a procurar outra correção ...
Em geral, o problema é que, como John Fouhy mencionou em um comentário, o Windows mantém o relógio no horário local, enquanto o OS X mantém o relógio no UTC (usando o fuso horário especificado como um modificador para fornecer a hora correta). Para corrigir isso, um dos sistemas operacionais terá que se curvar para trás e acompanhar o tempo usando o método do outro sistema.
Agora, o método mais confiável que encontrei para corrigir esse problema até agora é basicamente fazer com que o OS X mude o relógio para a hora local a partir do UTC sempre que desligar e depois volte a ligar sempre que for iniciado. O método exato para fazer isso pode ser encontrado no wiki do projeto OSx86 , curiosamente. (Uma pequena observação: há algumas coisas que parecem ser específicas do OSx86, a saber, o LaunchDaemon exige as instruções do Leopard. No entanto, eu experimentei o método Leopard literalmente no meu MacBook Pro, e ele funciona muito bem. Em outras palavras, apenas siga as instruções exatamente como estão escritas e não se importe com referências ao OSx86 nos arquivos - elas são irrelevantes.)
Aqui está a solução antiga, se você quiser experimentar. Esteja avisado: isso nunca foi atualizado para funcionar corretamente com versões mais recentes do Windows, por isso é muito confiável, como descobri da maneira mais difícil…
Outra maneira de sincronizar os relógios é forçar o Windows a usar o UTC através de um hack do registro (um truque que encontrei no Mac OS X Hints ):
- Inicie o RegEdit ( Iniciar -> Executar ... , digite
regedit
)
- Navegue para "
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
".
- No menu Editar , escolha Novo -> Valor DWORD .
- Nomeie esse valor "
RealTimeIsUniversal
".
- Clique duas vezes em
RealTimeIsUniversal
e insira 1
os dados do valor.
Na próxima vez que você inicializar no Windows, o relógio deve corresponder ao relógio do Mac OS X e você ainda pode fazer com que o fuso horário do Windows corresponda ao fuso horário definido no Mac OS X.