本文主要介绍了如何解决 Windows 和 Linux 双系统时间不一致的问题。
背景
当我们安装了 Windows 和 Linux 双系统后,经常会遇到两个系统时间不一致的问题,具体就是 Linux 系统的时间比 Windows 系统快了 8 个小时。这个问题是由于 Windows 和 Linux 系统处理系统硬件时间策略的不同带来的。
首先介绍一个概念: 协调世界时(英语:Coordinated Universal Time,简称 UTC)是最主要的世界时间标准,其以原子时秒长为基础,在时刻上尽量接近于格林威治标准时间,即 0 时区。
Windows 系统将计算机硬件时间当作本地时间(local time),所以在 Windows 系统中显示的时间跟 BIOS 中显示的时间是一样的。
而 Linux/Mac 将计算机硬件时间当作 UTC, 所以在 Linux/Mac 系统启动后在该时间的基础上,加上电脑设置的时区数( 比如我们在中国,它就加上“8” ),因此,Linux/Mac 系统中显示的时间总是比 Windows 系统中显示的时间快 8 个小时。
解决方案
由上可知,解决这个问题有两个方案,下面分别介绍。
1. 让 Linux 使用本地时间
现代 Linux 一般都采用 systemd 来管理系统,这时可以通过 timedatectl 命令来更改
timedatectl set-local-rtc 1 --adjust-system-clock
执行后重启系统就可以了。
2. 让 Windows 使用 UTC 时间
使用管理员权限打开命令行程序,输入以下命令来修改注册表。
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1
参考链接: