电脑内部都有一个记录时间的RTC,这个实时时钟系统会自动运转,即使你已经关闭电源。 IBM PC兼容机大多采用DS12887这个芯片,内部存储时间,包括年,月,日,时,分。。,还包括世纪,解决了千年虫的问题,但是这个系统没有关于时区的记录,时区的处理由操作系统才完成。
从这里已经可以引申出,产生双系统时间不一致的原因,Mac OS X采用UTC,就是说在电脑RTC系统中保存时间,Mac认为时UTC时间,OS X再根据系统的时区转换成本地时间给你看。
Windows使用Local time,就是说Windows系统认为RTC系统内保存的时间就是本地时间,不再根据时区作相应的转换了。Windows为什么不使用UTC,这个问题微软官方也做过说明,因为早在DOS时代,就是使用本地时间,一直为了兼容性保留下来(历史的包袱)
从上面的说明可以看出,如果是北京时间东8区,就会相差8个小时了。
PS: 很多其他的Unix Like的系统可以设置采用UTC还是Local Time
windows虽然为了兼容性,一直沿用本地时间,但是在注册表中有一个设置可以让它使用UTC,这个正是我们需要的,修改注册表就好了
让windows也使用Universal Time,这样即使在不联网的情况下,时钟仍然是正确的
特别注意的是:取消Boot Camp的Apple时间服务, 不然时不时Apple时间服务会
把时间调正回去.
1)开始菜单,运行regedit
2)打开TimeZoneInformation,位置
HKEY_LOCAL_MACHINE – SYSTEM – CurrentControlSet – Control – TimeZoneInformation
3)右击->创建一个新的DWORD. 数值名称 RealTimeIsUniversal 数值数据 1 (十
六进制) 注意大小写,修改完成确定并且把regedit关了.
4)打开时间设置, 取消 “自动与Internet时间服务器同步”
5)取消Apple时间服务. 控制面板->管理工具->服务. 里面有个”Apple时间服务”, 右
击它然后选择属性.启动类型选择禁用, 停止.