|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
装完CentOS7和Win8双系统,发现linux 的时间与windows上的时间不一致,正好差8个时区!
7 q- c0 u$ G* ^% G原因是linux将机器的物理时间理解为UTC时间。7 Q, K! y" }) }9 D& d8 u0 i* V
现在网上好多文章,基本上都是说要改/etc/default/rcS,CentOS 7中根本没有这个文件。后来终于得知这个配置文件被废弃了,调整时间现在使用 /etc/adjtime。( u# J3 `/ q- \: S0 g6 Z, o
. u& d5 ~# T a9 B: T. M6 a
解决方案为:3 R& Y. t+ `) K! l, o
编辑文件/etc/adjtime
7 W8 ^& i8 |' _: n' M+ R. }$ @. ?3 ~4 k( p
将0 B/ B$ O' \6 z
1 -0.130909 1374413192 0.0000002 13744131923 UTC
6 C8 e! p |3 W 修改为
0 t5 Z9 J$ ]$ [4 ~$ d 1 -0.130909 1374413192 0.0000002 13744131923 LOCAL4 |, t4 e7 d# @& _4 t. N- U# C# f
再调系统时间就好了。( I8 ]/ C3 J7 e$ c3 l7 v% O
注意:以上内容可能有所不同,只需要把 UTC 改为LOCAL即可。2 |0 z" K' ]2 N4 W
. z- N% E. ~ p+ P4 o4 v, D
分析总结:+ S3 @7 Q/ c1 L
UTC和CST不同存储方式直接影响这系统间时间的兼容性。( w8 p6 p6 {5 S7 j; L. n5 d1 w
时间处理方法1: 存储UTC的秒数那么整个系统的开关机过程将为:
$ B! T5 b9 a% h% { 关机:CST(时区变化,加减相应的小时)->UTC->bios-------------在这种情况下,在bios中看到的就是UTC时 间啦(由于bios中没有时区的概念,所以你要像看懂这个时间代表的是什么地方的时间,你一定要明白它由谁存的数,还有这个数原本代表了什么意义,如是那 个时区的)
1 {; c7 @' e: w3 S+ e3 S ? 开机:bios->UTC->CST(时区变化): t c2 t3 k' ^8 B
9 {% N0 U* \3 K0 E
时间处理方法2:存储CST的秒数那么整个系统的开关机过程将为:
c+ Z9 g8 z8 h. T8 Y# a7 W! y4 W 关机:CST(不用时区变化了,之间化为秒数后)->bios-------------这个时候你在bios中看到的时间就是有时区的啦 ^_^ $ p/ D3 N. w( B; B i
开机:bios->CST
* z% _! ?, x$ n
; G) p/ ~- C: |# d7 J+ L2 T 所以windows和linux系统组成双系统后,系统时候会出现相差大约8小时的情况。原因是 Linux 操作系统是以主机板 CMOS 时间做为格林威治标准时间,再根据系统设置的时区来确定目前系统时间。但是一般 Windows 系统并不如此,Windows 操作系统直接把 CMOS 时间认定为目前系统时间,不再根据时区转换。# m$ S0 v5 H3 @( `
- j/ e ^" Q8 F" H6 m( D( ?修改 Windows 使用格林威治标准时间 UTC方法如下:. `+ @0 V% T* A( g& W
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\ 中加一项类型为 REG_DWORD 的机码,名称为 RealTimeIsUniversal,值设为 1。' r# b1 o+ l* E/ \( O- m7 n
0 F M7 k0 T, X% Z
3 T5 k1 f% B- O# i6 k8 c- @6 U! Glinux中,编辑文件/etc/adjtime+ ?& k/ c; V! T; p5 P
: _, J3 x- C4 Z7 ?6 A& U% r5 \' `# i
( y7 `; G z/ U% d
6 J& W, S+ W ^' ^# ~; W. C+ L; m |
|