在Debian和Windows双系统下,登录了Windows后,再回到Debian会出现比正常时间提前了8小时的情况,查了查资料,将原理和调整方法记录如下:
1. Linux下的时间
1.1 世界时间(GMT),即格林威治时间。
1.2 本地时间(Llocal Time),以世界时间为准,用户根据所在的时区(Time Zone)与国际时间的差值来计算得出本地时间。如中国处在东8区,CST加上8小时即为本地时间。估计问题就在这儿。
2. Linux和Windows加载处理系统时间的差异
2.1 Linux 在每次启动时会加载BIOS的时间,并在退出时把时间写回BIOS。默认情况下,Linux认为BIOS里的时间是世界时间(UTC)。因此它读入世界时间然后根据用户所在时区计算出本地时间。对于中国而言,就是加上8小时。
2.2 Windows只认识本地时间,所以登录 Windows后设置的时间会写回BIOS。再登录进Debian会被识别为是世界时间,从而导致Linux下的本地时间比正确时间快了8小时(针对中国东8区)。 如果在Linux里修改本地时间(减去8小时),世界时间相应的也会被减去8小时,这又会导致Windows里的时间慢了8小时(因为Linux在退出时会 将修改后的世界时间写回BIOS)。
3. 解决办法
3.1 设置本地时区:# dpkg-reconfigure tzdata
3.2 关闭默认UTC时间:vi /etc/default/rcS 把UTC=yes改为UTC=no,使Linux默认BIOS时间为本地时间。
3.3 修改系统时间: # date -s "YYYY/MM/DD hh:mm:ss"
阅读(3616) | 评论(0) | 转发(1) |