双系统—-Linux时间与Windows差8个时区的问题解决方法

装完CentOS7和Win8双系统,发现linux 的时间与windows上的时间不一致,正好差8个时区!
原因是linux将机器的物理时间理解为UTC时间。
        现在网上好多文章,基本上都是说要改/etc/default/rcS,CentOS 7中根本没有这个文件。后来终于得知这个配置文件被废弃了,调整时间现在使用  /etc/adjtime。

解决方案为:
        编辑文件/etc/adjtime

        将
         1 -0.130909 1374413192 0.0000002 13744131923 UTC
        修改为
         1 -0.130909 1374413192 0.0000002 13744131923 LOCAL
        再调系统时间就好了。
注意:以上内容可能有所不同,只需要把 UTC 改为LOCAL即可。

分析总结:
UTC和CST不同存储方式直接影响这系统间时间的兼容性。
        时间处理方法1: 存储UTC的秒数那么整个系统的开关机过程将为:
                关机:CST(时区变化,加减相应的小时)->UTC->bios-------------在这种情况下,在bios中看到的就是UTC时 间啦(由于bios中没有时区的概念,所以你要像看懂这个时间代表的是什么地方的时间,你一定要明白它由谁存的数,还有这个数原本代表了什么意义,如是那 个时区的)
                开机:bios->UTC->CST(时区变化)

        时间处理方法2:存储CST的秒数那么整个系统的开关机过程将为:
                关机:CST(不用时区变化了,之间化为秒数后)->bios-------------这个时候你在bios中看到的时间就是有时区的啦 ^_^  
                开机:bios->CST

        所以windows和linux系统组成双系统后,系统时候会出现相差大约8小时的情况。原因是 Linux 操作系统是以主机板 CMOS 时间做为格林威治标准时间,再根据系统设置的时区来确定目前系统时间。但是一般 Windows 系统并不如此,Windows 操作系统直接把 CMOS 时间认定为目前系统时间,不再根据时区转换。

修改 Windows 使用格林威治标准时间 UTC方法如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\ 中加一项类型为 REG_DWORD 的机码,名称为 RealTimeIsUniversal,值设为 1
文档更新时间: 2020-01-10 03:30   作者:月影鹏鹏