在处理 BIOS 时钟时强制 Windows 8 使用 UTC

jie*_*eng 18 bios windows-8

我的笔记本电脑上有 Arch Linux + Windows 8。在以前版本的 Windows 中,注册表 ( HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal) 中有一个可在本地时间和 UTC 之间切换的 DWORD ,但这似乎不再适用于 Windows 8。

我现在在 Windows 中获得 UTC 时间,因为它认为 BIOS 给它本地时间,这实际上是 UTC 时间,并且在重新启动到 Arch Linux 后,时钟变为 localtime-0400,因为 Arch 认为 BIOS 具有正确的 UTC 时间。

我不想让 Arch Linux 使用本地时间。在这个前提下,有没有可能的解决方案?

Jum*_*unk 15

默认的 Windows 时间服务将始终在关机时将本地时间写入硬件时钟,而不管注册表对 UTC 中的实时时间有何说明。除了此警告之外,如果注册表设置正确,Windows 将正确处理硬件时钟。尝试这个:

  1. 如果时间因尝试让 Windows 使用 UTC 而混乱,请启动到 Windows,并按照正常方式设置时间(正确的时区、未注册、启用 Windows 时间服务、最近同步等)
  2. 做你已经提到的regedit
  3. 同步时间 w32tm /config /update
  4. 禁用 Windows 时间服务 sc config w32time start= disabled
  5. 安装第 3 方 NTP 客户端
  6. 验证它是否适用于重新启动


Neu*_*ter 11

RealTimeIsUniversal注册表项在 Windows 8 和 10 中仍然有效!使用此方法的说明在任何地方都解释了很多次,例如在这个答案中

我将在这里复制答案:

  1. Win+ S, regedit, Enter.

  2. 导航到键:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation

  3. 创建新的 DWORD(32 位)值,将其命名为RealTimeIsUniversal.

  4. 将其值设置为1

完成后,只需重新启动您的机器。再次启动并运行后,让Windows自动设置时间(点击托盘中的当前时间,Date and Time Settings> Set Time Automatically),这次它不会乱七八糟。


Kar*_*ran 5

RealTimeIsUniversal 确实有问题,而且不是官方推荐的解决方案(也许这就是他们在 Win8 中禁用它的原因?)请参阅IBM PC 实时时钟应该在 UT 中运行以及 Raymond Chen 的回复:为什么 Windows 将 BIOS 时钟保留在本地时间?。到目前为止,我认为还没有适当的解决方案。

  • 越野车?从来没有遇到过任何问题,强制 Windows 使用 UTC 系统时钟确实是唯一明智的解决方案。而且该键在 win8 中*未*禁用。真正的解决方案是设置注册表项,关闭 Windows 的时间同步,并让 Linux 处理同步(如果您经常启动 Linux)。 (9认同)
  • @flyingsheep 多年来已经发布了一些修补程序,请参阅 *Windows 中的当前支持状态*,网址为 http://www.cl.cam.ac.uk/~mgk25/mswish/ut-rtc.html (3认同)