让 Windows 使用 UTC

让 Windows 使用 UTC

我的系统时钟一直存在这个奇怪的问题。有时当我启动 Windows 10 时,我的时钟会显示比当前时间早 5 小时的时间。因此,如果我居住的地方(东部时区)是中午,时钟会显示下午 5 点。它也会根据夏令时进行调整,并保持提前 5 小时。

我检查了时区设置,发现设置正确。我已将互联网时间设置为与同步time.nist.gov,手动同步时间时,可以正确设置时钟,但执行此操作时会出现以下错误消息:

“Windows 与 time.nist.gov 同步时发生错误。此操作由于超时而返回。”

这个问题是在我删除硬盘并从头开始重新安装 Windows 10 后立即出现的,所以这不是由我从那时起安装的任何东西引起的。它只发生在 Windows 启动时,但不是每次都发生。我目前在双启动配置中安装了 Ubuntu 16.04(问题在我安装 Ubuntu 之前就开始了),我还没有看到 Ubuntu 时钟出现任何类似的问题。

我在网上查找过类似的与时间相关的问题,但似乎没有一个与我的相匹配。这个问题与我自己的非常相似,但是那里的问题是由于硬件时钟关闭引起的,并且我电脑 BIOS 中显示的时钟设置为正确的时间。

让我感到奇怪的是,时间是确切地差了五个小时,一分钟也不多,即使根据夏令时进行调整也是如此。在我看来,Windows 有时会与错误的时区同步,但我不知道如何验证或更正。

更新:事实证明,每次从 Ubuntu 切换到 Windows 都会触发 5 小时的偏移,因此这确实是 Ubuntu/Windows 分别将硬件时钟设置为通用/本地的问题。

答案1

我高度怀疑 Ubuntu 和 Windows 在时钟是本地时间还是 UTC 上存在分歧。冲突通常是因为 Linux 使用以 UTC 设置的时钟,而 Windows 使用以本地时区设置的时钟。

如果您希望 hwclock 显示您所在时区的时间,则需要将 linux 改为非 UTC,这意味着让 linux 使用本地时间。如果您同意 hwclock (BIOS) 使用 UTC,则将 windows 改为 UTC。

这里

让 Windows 使用 UTC

笔记:此方法最初不受 Windows Vista 和 Server 2008 支持,但在 Vista SP2、Windows 7、Server 2008 R2 和 Windows 8/8.1 中重新得到支持。


让 MS Windows 根据硬件时钟计算 UTC 时间。

创建一个名为WindowsTimeFixUTC.reg以下内​​容的文件,然后双击它以将其内容与注册表合并:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
 "RealTimeIsUniversal"=dword:00000001

笔记:无论关机时上述注册表设置如何,Windows 时间服务仍会将本地时间写入 RTC,因此使用此命令禁用 Windows 时间服务非常方便(如果在 Windows 中仍需要时间同步,请使用任何第三方时间同步解决方案):

sc config w32time start= disabled

扭转改变。

您可以创建一个包含以下内容的文件,然后双击它以合并原始更改,如上所述:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation]
    "RealTimeIsUniversal"=-

如果 Windows 时间服务已被禁用,请使用以下命令再次启用它:

sc config w32time start= demand

让 Linux 使用“本地”时间

要告诉你的 Ubuntu 系统硬件时钟已设置为“本地”时间:

Ubuntu 15.04 之前的系统(例如 Ubuntu 14.04 LTS):

编辑 /etc/default/rcS 并添加或更改以下部分

#Set UTC=yes if your hardware clock is set to UTC (GMT)
UTC=no

Ubuntu 15.04 系统及以上(例如 Ubuntu 16.04 LTS):打开终端并执行以下命令:

timedatectl set-local-rtc 1

相关内容