工作中~
分类: LINUX
2009-03-06 09:18:30
Linux中使用两种时间:世界时间(GMT)和本地时间(Local Time)。世界时间即格林尼治时间。而各个时区用户根据所在的时区(Time Zone)与国际时间的差值来获得本地时间。比如中国在东8区(CST +8:00),所以本地时间比国际时间快8小时。
Debian下设置时区的命令是tzconfig。
Linux 在每次启动时会加载BIOS的时间,并在退出时把时间写回BIOS。默认情况下,Linux认为BIOS里的时间是世界时间(UTC)。因此它读入世界时间然后根据用户所在时区计算出本地时间。对于中国而言,就是加上8小时。这种机制在多系统环境中会产生问题:因为Windows只认识本地时间,所以你在 Windows里设置的时间(会写回BIOS)在Linux环境中被认为是世界时间,从而导致Linux本地时间比正确时间快了8小时(对于中国而言)。 如果你在Linux里把本地时间减去8小时来修正(世界时间相应的也会被减去8),又会导致Windows里的时间慢了8小时(因为Linux在退出时会 将修改后的世界时间写回BIOS)
解决办法:
编辑文件/etc/default/rcS,把其中的UTC=yes选项改为UTC=no(即让Linux认为BIOS里的是本地时间)。
然后ntpdate time.nist.gov校对时间。
最后hwclock -w写入BIOS就完成了。
最后就是一个CST的问题,因为有很多不同的意义,所以最好设置时区的时候选择香港时间。