linux与Windows系统时间的两种处理方式
时间处理方法1.存储UTC的秒数那么整个系统的开关机过程将为:
关机:CST(时区变化,加减相应的小时)->UTC->bios-------------在这种情况下,在bios中看到的就是UTC时间啦(由于bios中没有时区的概念,所以你要像看懂这个时间代表的是什么地方的时间,你一定要明白它由谁存的数,还有这个数原本代表了什么意义,如是那个时区的)
开机:bios->UTC->CST(时区变化)
时间处理方法2.存储CST的秒数那么整个系统的开关机过程将为:
关机:CST(不用时区变化了,之间化为秒数后)->bios-------------这个时候你在bios中看到的时间就是有时区的啦^_^
开机:bios->CST
注:CST= China Standard Time UTC+8:00
Windows VM与宿主XenServer系统时间相差8小时
原因是Linux 操作系统是以主机板 CMOS 时间做为格林威治标准时间,再根据系统设置的时区来确定目前系统时间(即时间处理方法1)。但是一般 Windows系统并不如此,Windows 操作系统直接把 CMOS 时间认定为目前系统时间,不再根据时区转换(即:时间处理方法2)。
所以,Windows VM与宿主XenServer系统时间会发现相差8小时。可以择一方法解决:修改 Windows 去使用时区,或是修改 linux 不使用格林威治标准时间 UTC。
修改Windows 使用格林威治标准时间 UTC方法如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\中加一项类型为 REG_DWORD 的机码,名称为 RealTimeIsUniversal,值设为 1。
修改linux 不使用格林威治标准时间 UTC (启用本地时间) 方法如下:
修改/etc/default/rcS 原来的设定 UTC=yes 为 UTC=no。
修改linux的时间存储方式就是去改/etc/sysconfig/clock这个文件(redhat和fedora里面有的)这个文件的内容如下
#cat /etc/sysconfig/clock
#The ZONE parameter is only evaluated by system-config-date.
#The timezone of the system is defined by the contents of /etc/localtime.
ZONE="Asia/Shanghai"
UTC=false
ARC=false