|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
装完CentOS7和Win8双系统,发现linux 的时间与windows上的时间不一致,正好差8个时区!% D0 y7 i# z9 E, ~ q* ]
原因是linux将机器的物理时间理解为UTC时间。: n) t7 p P/ m- J
现在网上好多文章,基本上都是说要改/etc/default/rcS,CentOS 7中根本没有这个文件。后来终于得知这个配置文件被废弃了,调整时间现在使用 /etc/adjtime。* R# t& ~1 k0 j1 h
0 v! Z' N. C. {解决方案为:
5 ?* L ?6 C& s% |. u( L6 W. u2 w 编辑文件/etc/adjtime# {7 O6 J& ~" q3 U( Q) M
7 S. r+ Q0 B, l 将
) l9 c1 @" S/ v' f 1 -0.130909 1374413192 0.0000002 13744131923 UTC( g' \" C, p: r8 W+ ]
修改为
+ c0 c/ N; w, Z- s$ N% e6 M9 \ 1 -0.130909 1374413192 0.0000002 13744131923 LOCAL
1 ]- l8 [$ n! ?5 [2 C6 L 再调系统时间就好了。6 t2 P& @# L4 J0 |/ P
注意:以上内容可能有所不同,只需要把 UTC 改为LOCAL即可。7 }; T9 z/ ] h, k+ \; O
' k+ v# k/ I8 Y# s! \: S
分析总结:
; K* i7 \& ]( ^& |% pUTC和CST不同存储方式直接影响这系统间时间的兼容性。
- M D" S: N1 h5 H% k 时间处理方法1: 存储UTC的秒数那么整个系统的开关机过程将为:
2 |3 I. i+ z$ w0 ]0 d 关机:CST(时区变化,加减相应的小时)->UTC->bios-------------在这种情况下,在bios中看到的就是UTC时 间啦(由于bios中没有时区的概念,所以你要像看懂这个时间代表的是什么地方的时间,你一定要明白它由谁存的数,还有这个数原本代表了什么意义,如是那 个时区的)9 [8 B. C9 z) \; R) U9 |
开机:bios->UTC->CST(时区变化)
; `- S% m1 j% U, S5 p! s/ I( g9 f4 o) \5 c: j" {% {8 u
时间处理方法2:存储CST的秒数那么整个系统的开关机过程将为:
$ _, H1 R( o$ j: }9 j 关机:CST(不用时区变化了,之间化为秒数后)->bios-------------这个时候你在bios中看到的时间就是有时区的啦 ^_^
/ G' j# J$ F( Y 开机:bios->CST2 J/ P1 `! X! P3 n2 |- {/ l
$ `" h1 H% h: \' V. A2 W
所以windows和linux系统组成双系统后,系统时候会出现相差大约8小时的情况。原因是 Linux 操作系统是以主机板 CMOS 时间做为格林威治标准时间,再根据系统设置的时区来确定目前系统时间。但是一般 Windows 系统并不如此,Windows 操作系统直接把 CMOS 时间认定为目前系统时间,不再根据时区转换。; ?' {* A# [: E) `3 ]' X" i
& U- x1 |4 p5 `
修改 Windows 使用格林威治标准时间 UTC方法如下:& R; f7 e f4 t0 z. z7 Q" W" ?
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\ 中加一项类型为 REG_DWORD 的机码,名称为 RealTimeIsUniversal,值设为 1。; ?+ n, u0 k% S) |# z3 u: c
# }% w | [6 C( b d
b3 i- E: Z" \, Flinux中,编辑文件/etc/adjtime3 _1 S w; Z/ g) z' N: z
, s' [" H: q3 Z2 I5 x1 ~8 i# x6 R, G
) ^) Q0 h" w8 @# K
5 [& W7 G1 K) R( ]% X" ]. V
|
|