Answers:
编辑:在使用我最初发布的方法几天后,我发现该RealTimeIsUniversal
标志作为Windows NT的一个未维护的剩余部分,实际上实际上很脆弱并且不切实际。Windows时钟每隔一段时间(似乎是随机的时间)从UTC转换为本地时间,这非常烦人(并导致一些git commit看起来像来自未来的提交日志)。这导致我寻找另一种解决方法…
通常,问题在于,正如John Fouhy在评论中提到的那样,Windows将时钟保持在本地时间,而OS X将时钟保持在UTC(使用指定的时区作为修饰符来提供正确的时间)。为了解决此问题,其中一个操作系统将不得不向后弯腰,并使用另一个系统的方法来跟踪时间。
现在,到目前为止,我发现最可靠的方法可以解决此问题,基本上是使OS X在关闭时将时钟从UTC切换到本地时间,然后在启动时将其切换回本地时间。有趣的是,可以在OSx86项目Wiki上找到执行此操作的确切方法。(注意:有一些东西似乎是OSx86特有的,即Leopard指令的LaunchDaemon plist。但是,我在MacBook Pro上逐字尝试了Leopard方法,并且效果很好。换句话说,请严格按照说明进行操作,并且不要介意文件中对OSx86的任何引用-它们无关紧要。)
如果您想尝试一下,这是旧的解决方案。但请注意:它从未更新过,无法与新版本的Windows一起正常使用,所以它非常不可靠,因为我发现了困难的方法……
同步时钟的另一种方法是通过注册表黑客强制Windows使用UTC(我从Mac OS X Hints中找到了一个技巧):
regedit
)HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation
”。RealTimeIsUniversal
”。RealTimeIsUniversal
,然后输入1
数值数据。下次启动Windows时,时钟应与Mac OS X时钟匹配,并且Windows时区仍可与Mac OS X中设置的时区匹配。
检查以确保在两个操作系统上使用相同的时区。如果一个时区不同,则可能会更改系统时钟以显示其时区,该时区可能与另一个操作系统的时间不同。
我在Mac方面有一个登录脚本-在我的情况下是Leopard-这是一个用于通过Internet设置时钟的简单shell脚本:
#!/bin/sh
ntpdate -uvs time.apple.com
exit 0
因此,当您启动Windows时,如果您位于东海岸,则将时钟向前发送5个小时;而当您重新启动至Mac OS X时,它将时钟重新设置为UTC。
干杯...
吉姆·费尔(Jim Ferr)