该系统位于意大利,执行时date
给出Fri 7 Aug 16:15:56 CEST 2020
,而实际时间为 14:21:09。
执行timedatectl status
给出:
Local time: Fri 2020-08-07 16:15:56 CEST
Universal time: Fri 2020-08-07 14:15:56 UTC
RTC time: Fri 2020-08-07 14:15:57
Time zone: Europe/Rome (CEST, +0200)
System clock synchronized: no
NTP service: inactive
RTC in local TZ: no
Run Code Online (Sandbox Code Playgroud)
如何修复显示正确的时间?
Arch 与 Windows 10 处于双重启动状态,我不在乎 Windows 是否显示错误的时间,而我在 Arch 上会得到正确的时间。
尽管您绝对应该设置 NTP(ArchWiki 有一篇关于该主题的优秀文章: https: //wiki.archlinux.org/index.php/Network_Time_Protocol_daemon#Configuration),但您仍然会遇到问题,因为 Windows 认为系统时钟应该为当地时间,并将不断调整。Linux 将继续反其道而行之。
解决此问题的方法是重新配置其中之一。例如,要告诉 Linux 系统时钟是本地时钟,您可以运行以下命令:
$ sudo timedatectl set-local-rtc 1 --adjust-system-clock
Run Code Online (Sandbox Code Playgroud)
相反,告诉 Windows 使用 UTC 可以通过添加以下注册表项来完成:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
Run Code Online (Sandbox Code Playgroud)
它应该是 DWORD (32),其值为:
1
Run Code Online (Sandbox Code Playgroud)