告别时间错乱!彻底解决Linux与Windows双系统时间的同步问题
引言
或许你会遇到过一个很烦人的问题:
在使用Windows和Linux双系统时,
Linux下设置时区正常时,Win下时间会错位;
Win下同步时间时,Linux下时间会错位;
王 昌 龄 马 !
问题根源:默认情况下,Linux系统使用协调世界时(UTC),而Windows则使用实时时钟(RTC)中存储的本地时间。安装Linux并同步时间后Linux会将硬件时间同步至UTC时间,这会导致Windows错误地将UTC时间当作本地时间而出现时间显示错误。而Linux系统在设置时区之后会在UTC上加上对应时区的时间偏移量进行显示,因此不会出现时间显示问题。
当然,除了每次开机自己动手去同步时间这种笨方法之外,还是有很有效的解决方法的。
要么,你让Windows用UTC;
要么,你让Linux用RTC。
解决方案
方法1:将Windows的时钟基准切换为UTC(推荐)
笔者当然优先选择这一个方案。
我们按 Win+R 输入 regedit 打开注册表编辑器,
然后导航到以下路径:
1 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation |
新建 DWORD(32位) 值,名称设置为 RealTimeIsUniversal ,并将这一项的值修改为 1
重启系统,很快你就能看到你的系统时间正常了。
方法2:将Linux的时钟基准切换为RTC
1 | timedatectl set-local-rtc 1 --adjust-system-clock |
为什么笔者更推荐设置Windows时钟基准为UTC:
Linux的大多数程序和服务是遵循POSIX标准设计的
如果你将Linux的时钟基准切换为RTC,那么:
- 一些程序和服务会在日志中记录错误的时间
- 个人脚本、cron任务可能会出现延迟/提前执行的问题
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 anniharax的博客!
