如何修复 Windows 和 Linux 在双启动时显示不同的时间

您的计算机将时间存储在其主板上的硬件时钟中。时钟会跟踪时间,即使在计算机关闭时也是如此。默认情况下,Windows 假定时间以本地时间存储,而 Linux 假定时间以 UTC 时间存储并应用偏移量。这会导致您的操作系统之一在双启动情况下显示错误的时间。

要解决此问题,您有两个选择:让 Linux 使用本地时间,或让 Windows 使用 UTC 时间。不要遵循说明的两个步骤,否则他们仍然不会说同一种语言!如果可能,我们建议您让 Linux 使用本地时间。

让 Linux 使用本地时间来修复时间差异

让 Linux 像 Windows 一样使用本地时间可能是最好的选择。Windows 确实有一个注册表设置,强制它将时间存储为 UTC,但据报道它没有得到很好的支持,并且可能会导致某些第三方应用程序出现问题,这些应用程序始终假定硬件时钟为本地时间。它也与Windows自己的互联网时间同步服务不兼容。

使 Linux 系统使用本地时间的步骤可能因 Linux 发行版而异。但是,在任何带有 systemd 的 Linux 发行版上,您可以使用该命令进行此更改。这将适用于现代版本的Ubuntu,Fedora,Red Hat,Debian,Mint和其他使用systemd的Linux发行版。timedatectl

要进行此更改,请首先在 Linux 系统上打开终端窗口。运行以下命令,将主板上的实时时钟放入本地时间。Linux 将以本地时间存储时间,就像 Windows 一样。

timedatectl set-local-rtc 1 --adjust-system-clock
将时钟设置为本地时区的命令。

执行命令后,您将不会收到任何反馈。要检查当前设置,请运行:

timedatectl
RTC 时钟被确认在本地时区上运行。

如果您看到“本地 TZ 中的 RTC:是”,则 Linux 设置为使用本地时区而不是 UTC。该命令警告您,此模式不完全受支持,并且在时区之间更改和夏令时时可能会导致一些问题。但是,此模式可能比 Windows 中的 UTC 选项得到更好的支持。如果您使用 Windows 进行双启动,Windows 将为您处理夏令时。

如果要撤消此更改,请运行以下命令:

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

linux-rtc-0使 Windows 使用 UTC 时间来修复时间错误

让Windows像Linux一样使用UTC时间可能不是最好的选择。您可以编辑注册表以使 Windows 使用 UTC 时间,但这可能会导致比仅使 Linux 使用本地时间更多的问题。

如果您确实要执行此操作,则首先要禁用Windows上的Internet时间更新功能。这可确保 Windows 在尝试从 Internet 同步当前时间时不会错误地设置时钟。在Windows 10上,前往“时间和语言设置”>并禁用“自动设置时间”。在 Windows 7 上,右键单击任务栏中的系统时钟,然后选择“调整日期/时间”。单击“互联网时间”选项卡,单击“更改设置”按钮,取消选中“与互联网时间服务器同步”选项,然后单击“确定”。

确保

通过编辑注册表使 Windows 使用 UTC 时间

现在,您需要将适当的值添加到 Windows 注册表中。以下是我们的标准警告:注册表编辑器是一个功能强大的工具,滥用它可能会导致您的系统不稳定甚至无法运行。这是一个非常简单的黑客,只要您按照说明进行操作,就不会有任何问题。也就是说,如果您以前从未使用过它,请考虑在开始之前阅读有关如何使用注册表编辑器的信息。在进行更改之前,一定要备份注册表(和您的计算机!

首先,通过单击“开始”,键入“regedit”,然后按 Enter 打开注册表编辑器。 同意出现的安全提示。

通过“开始”菜单打开注册表编辑器。

导航到注册表编辑器左窗格中的以下项:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation

在 Windows 10 和 Windows 11 上,您可以将上述行复制并粘贴到地址框中。但是,此黑客也适用于旧版本的Windows。

时间设置注册表项。

右键单击“时区信息”键,然后选择“新建> DWORD(32 位)值”。

在 Windows 10 上创建新的 DWORD。

将新值命名为 。RealTimeIsUniversal

Windows UTC 注册表项当前已禁用。

双击刚刚创建的值,将值数据设置为 ,然后单击“确定”。RealTimeIsUniversal1

我们创建的注册表项的值已设置为

您现在已完成,您可以关闭注册表编辑器。Windows将以UTC格式存储时间,就像Linux一样。

如果要撤消此更改,请返回到注册表中的此位置,右键单击添加的值,然后将其从注册表中删除。RealTimeIsUniversal

下载我们的一键式注册表黑客以更改为UTC

两个 REG 文件,可让您在使用本地时间和使用 UTC 之间快速切换。

如果您不想自己编辑注册表,可以使用我们可下载的注册表黑客。我们创建了一个使Windows使用UTC时间的黑客,以及一个将其恢复到本地时间的黑客。两者都包含在以下 ZIP 文件中。只需下载文件,双击要使用的黑客,并同意将信息添加到注册表中。

使窗口使用 UTC 时间

上述黑客与我们上面描述的相同。Make Windows Use UTC Time hack 创建值为“1”的“RealTimeIsUniversal”条目,而 Make Windows Use Local Time hack 删除“RealTimeIsUniversal”条目。

如果您想查看此文件或任何其他 .reg 文件的作用,请右键单击它并选择“编辑”以在记事本中查看该文件。您可以轻松制作自己的注册表黑客,其中仅包含要在格式正确的列表中添加、编辑和删除的注册表项列表。

Mac上的双启动Windows怎么样?

尽管Apple的macOS像Linux一样使用UTC时间,但在Mac上的Boot Camp中运行Windows时,您不必做任何特殊的事情。Apple的Boot Camp驱动程序可以处理所有事情。(不过,Hackintosh双引导程序是另一回事,必须尝试使用上面的Windows注册表调整。

为什么 Windows 使用本地时间而不是 UTC?

简而言之,这是为了保持与Windows 3.1系统的向后兼容性,并防止人们在计算机的BIOS中设置时间时感到困惑。当然,PC制造商选择本地时间与Windows兼容,Windows选择本地时间与PC制造商选择的决定兼容,因此循环变得自我强化。

目前没有标准来标记时间是存储在 BIOS 还是 UEFI 固件中的本地时间,这可能是最合乎逻辑的解决方案。但这需要一些工作,大多数人甚至不会注意到不同的操作系统使用不同的时间格式——除了双启动配置。

未经允许不得转载:表盘吧 » 如何修复 Windows 和 Linux 在双启动时显示不同的时间