linux修改时区

原链接: http://blog.csdn.net/chinazgr/article/details/11554685
参考二: http://zhidao.baidu.com/link?url=zDQTgVp1BJbLs5ydH8NMsV6udHwTuT6JoKaqdxblFlfcXelw5b-KrqIgxwpFXVgJciVRhy2Gyt2Oo-wEqRxSWq
Windows(XP和VISTA)和(Linux/Unix/Mac)缺省看待系统硬件时间的方式是不一样的:
* Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。
* Linux/Unix/Mac把硬件时间当作UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。

所以,当PC中同时有多系统共存时,就出现了问题。假如你的Ubuntu和WindowsXP中设置的时区都为北京时间东八区,而你在Ubuntu中把当前系统时间更改为9:00AM。则此时硬件中存储的实际是UTC时间1:00AM。这时你重启进入Windows后,你会发现windows系统中显示的时间是1:AM,比Ubuntu中慢了八个小时。同理,你在Windows中更改或用网络同步了系统时间后,再到Ubuntu中去看,系统就会快了8小时。在实行夏令时的地区,情况可能会更复杂些。原因知道了,那怎么来解决这种冲突呢。一种就是让Windows把硬件时间当作UTC,与Linux/Unix /Mac保持一致。另一种就是让Linux/Unix/Mac把系统时间当作本地时间,与Windows保持一致。

而在Ubuntu下的修改方法如下:
Ubuntu中不使用UTC时间,而启用本地时间,需要修改 /etc/default/rcS ,修改动作如下:
# 注释掉原来的设定:UTC=yes
# 变更为下面的内容...
UTC=no


root@enjoyor-desktop:~# hwclock --utc 
2013年09月11日 星期三 10时39分59秒  -0.934954 seconds 
root@enjoyor-desktop:~# hwclock --localtime 
2013年09月11日 星期三 02时40分03秒  -0.575275 seconds 
root@enjoyor-desktop:~# date 
2013年 09月 11日 星期三 10:40:09 CST 
root@enjoyor-desktop:~# hwclock  
2013年09月11日 星期三 10时41分37秒  -0.899745 seconds 
    系统时间更新到cmos,如果UTC=yes,将系统时间更新到utc:hwclock --systohc --utc;而UTC=no,更新到localtime,hwclock --systohc --localtime。这样就OK了。



更改/etc/timezone里面的内容为:Asia/Shanghai
#mv /etc/localtime /etc/localtime-2009
# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

3. 选择时区信息。命令为:tzselect
根据系统提示,选择相应的时区信息。
4. 修改系统时钟。命令为:date -s
(1)将时间调整为10月11日凌晨1点55分:data 10110155
(2)将系统时间设定成2005年8月8日:      date -s 2005/08/08
(3)将系统时间设定成下午8点12分0秒:  date -s 20:12:00
该命令是用来修改系统时钟的。在系统启动时,Linux操作系统将时间从CMOS中读到系统时间变量中,以后修改时间通过修改系统时间实现。为了保持系统时间与CMOS时间的一致性,Linux每隔一段时间会将系统时间写入CMOS。由于该同步是每隔一段时间(大约是11分钟)进行的,在执行完 date -s 命令后,如果马上重起系统,修改的时间就有可能没有被写入CMOS。如果要确保修改生效,最好再使用 clock -w 这个命令将系统时间强行写入CMOS。

猜你喜欢

转载自yingbin920.iteye.com/blog/1996593