如何同步你的时钟

设备时钟不准时,时间戳、两步验证码、日历提醒和安全连接都可能出问题。打开自动对时,一分钟之内就能解决。

正在检查你的时钟…

Windows 11 和 10

  1. 右键点击任务栏上的时钟,选择调整日期和时间。(或打开设置 › 时间和语言 › 日期和时间。)
  2. 打开自动设置时间
  3. 点击立即同步。旁边的时间应更新为“刚刚”。
  4. 检查时区是否正确 — 时区错误看起来就像时钟整点整点地偏离。

如果“立即同步”失败

管理员身份打开命令提示符或 PowerShell,运行:

w32tm /resync

如果提示服务未运行,请先启动它:

net start w32time
w32tm /resync

如果“立即同步”成功,但偏差仍不足一秒

Windows 只有在误差大于 MaxAllowedPhaseOffset(默认一秒)时才会直接跳转时钟。更小的误差改为缓慢调整走时快慢来修正,而这只在 Windows 时间服务运行期间才继续。该服务是触发式启动的,所以 Windows 会在同步后不久再次停止它,把修正丢在半途。这就是为什么立即同步每次都报告成功,而零点几秒的误差却长期存在。

管理员身份在 PowerShell 中让服务保持运行,并允许 Windows 直接修正不到一秒的误差:

Set-Service W32Time -StartupType Automatic
Start-Service W32Time
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\Config' -Name MaxAllowedPhaseOffset -Value 0 -Type DWord
w32tm /config /update
Restart-Service W32Time
w32tm /resync /force

不必离开控制台就能测量结果 — 偏差应以毫秒而非十分之一秒返回:

w32tm /stripchart /computer:time.cloudflare.com /samples:5 /dataonly

MaxAllowedPhaseOffset 设为 0,也意味着当时钟走快时 Windows 可以把它往回拨,少数对时间敏感的程序并不喜欢这一点。若想避免,可将该值保留为 1,仅把服务设为自动启动 — 渐进修正仍然有效,只是吸收整整一秒需要几个小时。

更频繁地同步,避免再次跑偏

放任不管的 PC 时钟通常每天快或慢一秒以上,而 Windows 11 每 32768 秒(九个多小时)才检查一次。改为每小时轮询,可让两次检查之间的误差小得多:

Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient' -Name SpecialPollInterval -Value 3600 -Type DWord
Restart-Service W32Time

该间隔只在所配置的服务器带有 0x1 标志时生效。Windows 默认的 time.windows.com,0x9 已经包含它,因此通常无需再改动 — 可用 w32tm /query /source 以及下文的Internet 时间选项卡确认。

换用其他时间服务器

控制面板 › 时钟和区域 › 日期和时间 › Internet 时间选项卡 › 更改设置。把服务器设为 time.windows.compool.ntp.org,然后点击立即更新

如果同步彻底失败,值得一试;但它很少能解释很小的偏差:公共时间服务器彼此的一致性在几毫秒之内,因此偏差达到明显零点几秒的时钟并不是被服务器误导的。

同步完成后,请按本页顶部读数中的重新检查。测量是在页面加载时进行的,因此刚刚修好的时钟只有重新检查后才会被读到。一秒以上的误差应当消失;剩下零点几秒是正常的,那需要的是亚秒级修正,而不是再同步一次。

准确的时钟为何重要

登录与两步验证

验证器的动态码由当前时间推算而来。时钟偏差超过大约 30 秒,这些验证码就会失效。

安全连接

证书只在两个日期之间有效,所以时钟严重偏离会让完全正常的网站弹出“你的连接不是私密连接”的警告。

会议与提醒

日历提醒、计时器和定时任务都以本地时钟为准,因此会随之一起跑偏。