解决linux与windows时间相差8小时问题
问题:在电脑上运行linux系统之后,再进入windows系统之后会发现,windows和linux的系统时间总是相差8小时,windows的系统时间要加上8,才能与当地实际时间相一致;修改linux时间或者windows时间,也解决不了问题,一旦切换系统启动,还是相差8小时。 原因:linux、windows对BIOS硬件时间识别的方式不同。 首先,UTC即Universal Time Coordinated,协调世界时;GMT即Greenwich Mean Time,格林尼治平时。 1、Windows把系统硬件时间当作本地时间(local time),即操作系统中显示的时间跟BIOS中显示的时间是一样的。 2、Linux/Unix/Mac把硬件时间当作 UTC,操作系统中显示的时间是硬件时间经过换算得来的,比如说北京时间是GMT+8,则系统中显示时间是硬件时间+8。 所以当有多个系统共存时就出现了上述问题。当修改了linux中的系统时间时,windows的时间即为linux设置时间-8,反之,放设置windows系统时间时,linux的时间变为windows时间+8。 了解到这些后,我们便可以想办法来解决这个问题。 解决方法: 1. 可让 Linux 不使用 UTC 时间与 Windows 保持一致。 Linux默认开启UTC,即协调世界时,而win7是使用这种计时方式,这将导致的结果就是Windows和Linux时间计算有差异 你可以使用以下方法得到一致的时间: sudo gedit /etc/default/rcS 找到这一行:UTC=yes www.2cto.com 把 yes改为no 在fedora(我是fedora 13)下,一次打开System&ndash>Administration&ndash>Date & Time在Time Zone选项卡下把System clock uses UTC前面的勾去掉,确定。稍微过几分钟系统时间就正常了。
或者:在/etc/profile文件中增加一行 export TZ=''CST-8'' 使文件立即生效。 source /etc/profile 或者 . /etc/profile
2. 修改 Windows 对硬件时间的对待方式,这样只在 Windows 上修改后就无需在Linux 上设置了。这样,让Windows认定CMOS时间为格林威治标准时间,来消除操作系统之间认定时间的差异,从而解决Windows操作系统与不同操作系统并存时出现的时间认定纠纷。Windows注册表内已经隐藏了这样一个开关。 让 Windows 把硬件时间当作 UTC 开 始->运行->CMD,打开命令行程序(Vista则要以管理员方式打开命令行程序方可有权限访问注册表),在命令行中输入下面命令并回车 代码: Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
或者打开注册表,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\中添加一项数据类型为REG_DWORD,名称为RealTimeIsUniversal,值设为1. 考虑到其它介质启动问题,建议选择第一种办法,较好,这样与常用的各种windows系统相一致,麻烦较少。事实上,有另一个没有修改的linux启动介质,也会修改系统时间。如果不上网,则不会变化。 |