修复双启动时 Windows 和 Linux 显示不同时间的问题

如果您的系统同时启动 Windows 和 Linux,您可能会注意到无法使系统时钟同步。 无论您如何更改一个操作系统中的时钟,它都不能解决另一个操作系统的问题。 这是因为 Windows 和基于 Unix 的操作系统之间的计时方法存在分歧。 幸运的是,有一个相对简单的解决方法。

为什么会这样?

您的计算机将当前时间存储在主板上的时钟中。 这使计算机即使在关闭时也能跟踪时间。 为了考虑时区,不同的操作系统使用不同的方法。 Windows 假定本地时间存储在主板中,因此它不应用任何类型的时区偏移。 另一方面,Linux 会将主板上的时间解释为 UTC(又名格林威治标准时间),并应用时区偏移来显示本地时间。

这两个系统都可以独立工作。 当您双启动系统,在同一主板上运行 Windows 和 Linux 时,就会出现此问题。 当操作系统被迫共享时间存储时,时钟不会同步。

有两种不同的方法可以解决这个问题:我们可以改变 Linux 解释存储时间的方式,或者对 Windows 做同样的事情。

选项 1:让 Linux 使用本地时间

让 Linux 和 Windows 在时间上达成一致的最可靠方法是改变 Linux 的计时方法。 虽然这没有明确支持,但它比在 Windows 中执行相同操作稍微可靠一些。 它适用于任何风格的 Linux 使用 systemd,其中包括 Ubuntu, Fedora、红帽、Debian 和 Mint。 更改 Windows 时间通常也可以正常工作,但有时会导致第三方软件不稳定,因为第三方软件期望存储的时间是本地时间。

1. 打开终端并运行以下命令:

这将告诉系统将您主板的存储时间解释为本地时间。 Linux 将不再对存储在主板上的时间应用时区调整。 因此,您的时钟将同步。

如果您需要反转命令,请将 1 更改为 0:

选项 2:让 Windows 使用 UTC

您还可以更改 Windows 查看系统时间的方式。 此调整将导致 Windows 将存储在主板上的时间解释为 UTC,然后 Linux 可以将其解释为正确的时区。 虽然这通常运作良好,但某些应用程序依赖于本地时间的主板时间。 因此,有时会出现难以跟踪的错误。 这使得这个选项比第一个选项稍微不那么受欢迎。

1. 在设置应用程序的“时间和语言”下禁用“自动设置时间”。 这将阻止 Windows 还原我们即将进行的更改。

windows-linux-dual-boot-time-1

2.通过键入打开注册表编辑器 regedit 在开始菜单中。

windows-linux-dual-boot-time-2

3. 在注册表编辑器的左窗格中找到以下注册表项。 要快速到达那里,请将位置粘贴到注册表编辑器的地址栏中:

windows-linux-dual-boot-time-3

4. 右键单击​​左窗格中的“TimeZoneInformation”键,然后从上下文菜单中选择“新建 -> DWORD(32 位)值”。

windows-linux-dual-boot-time-4

5. 将新值命名为“RealTimeIsUniversal”。

windows-linux-dual-boot-time-5

6. 双击刚刚创建的值,将其值设置为“1”,然后单击“确定”。

windows-linux-dual-boot-time-6

结论

在双引导系统上同步系统时钟的最安全方法是调整 Linux 解释时间的方式。 如果这对您不起作用(或者如果您使用的是 macOS 而不是 Linux),您还可以编辑 Windows 注册表以更改 Windows 理解主板时间的方式。

订阅我们的新闻!

我们的最新教程直接发送到您的收件箱

注册所有时事通讯。 注册即表示您同意我们的隐私政策并且欧洲用户同意数据传输政策。 我们不会共享您的数据,您可以随时取消订阅。 订阅