betaLab Op. 2

同步Win10与Ubuntu的本地时间

为了撅PA,很多同学都装了Windows与Ubuntu双系统,然而每次从Linux回到Win的时候都会发现系统时间慢了8个小时(恼,下面就让小编介绍一下如何解决这个问题罢!

问题原理

首先介绍一下与时间相关的几个量:

  • 本地时间:即所在地的实时时间。
  • UTC(Universal Time Coordinated):协调世界时,在时刻上尽量接近于格林尼治标准时间。
  • RTC(Real Time Clock):主板上硬件时钟记录的时间,又称CMOS时钟。

我们处于东8区,故正确的本地时间计算方式为UTC时间+8小时。然而Windows与Linux看待系统硬件时间的方式不同,Windows系统认为硬件时间(RTC)是本地时间。Ubuntu认为硬件时间(RTC)是UTC时间。

举个例子,某日正午12点时,实际上UTC时间为4时:

  • 从Win切换到Linux:Win知道本地时间为12时,将RTC时间也设为12时,切换到Linux中,Linux认为UTC时间=RTC时间=12时,故将UTC时间加上8时算得本地时间20时,然而在开机的网络同步时钟进程中又获得真正的本地时间12时,所以将RTC时间调整为12时-8时=4时。
  • 从Linux切换到Win:Linux中此时RTC时间=UTC时间=4时,切换到Win中,Win认为本地时间=RTC时间=4时,慢了8时,需要手动同步时钟获得真正的本地时间。

解决方案

需要统一两个系统看待RTC时间的方式,故有两种修改方式,小编倾向于修改Win的设置,避免Linux每次发行版更新都要重新设置的问题。

Ubuntu侧

终端中键入命令,让系统将RTC时间看作本地时间,与Windows同步。

1
timedatectl set-local-rtc 1 --adjust-system-clock

Windows侧

CMD中键入命令修改注册表,让系统将RTC时间看作UTC时间,与Ubuntu同步。

悲报,这种方法在最近某次系统更新中会导致资源管理器开摆,失效。

作者

2021人工智能二班

发布于

2022-09-15

更新于

2022-09-23

许可协议