如何同步你的时钟
设备时钟不准时,时间戳、两步验证码、日历提醒和安全连接都可能出问题。打开自动对时,一分钟之内就能解决。
正在检查你的时钟…
正在显示 Windows 的说明。不是你的设备?请在上方选择。
Windows 11 和 10
- 右键点击任务栏上的时钟,选择调整日期和时间。(或打开设置 › 时间和语言 › 日期和时间。)
- 打开自动设置时间。
- 点击立即同步。旁边的时间应更新为“刚刚”。
- 检查时区是否正确 — 时区错误看起来就像时钟整点整点地偏离。
如果“立即同步”失败
以管理员身份打开命令提示符或 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.com 或 pool.ntp.org,然后点击立即更新。
如果同步彻底失败,值得一试;但它很少能解释很小的偏差:公共时间服务器彼此的一致性在几毫秒之内,因此偏差达到明显零点几秒的时钟并不是被服务器误导的。
macOS
- 打开苹果菜单 › 系统设置。
- 进入通用 › 日期与时间。
- 打开自动设置日期与时间。来源应显示
time.apple.com。 - 确认根据当前位置自动设置时区已开启。
在 macOS Monterey 及更早版本中,路径为系统偏好设置 › 日期与时间;请先点击锁形图标解锁。
通过终端强制重新同步
sudo sntp -sS time.apple.com
iPhone 和 iPad
- 打开设置 › 通用 › 日期与时间。
- 打开自动设置。
- 若该项为灰色,请查看设置 › 屏幕使用时间 › 内容与隐私访问限制 — 日期与时间的更改可能在那里被禁止。
- 仍然不对?开关一次飞行模式,或重启设备,强制它重新获取网络时间。
iOS 从移动网络或 Wi-Fi 获取时间,因此长时间离线的设备重新联网后可能需要片刻。
Android
- 打开设置 › 系统 › 日期和时间。三星设备上是设置 › 通用管理 › 日期和时间。
- 打开自动设置时间(某些版本称之为使用网络提供的时间)。
- 同时打开自动设置时区。
- 如果该选项已开启但时钟仍然不对,关掉再打开一次以强制刷新。
Linux
多数现代发行版使用 systemd-timesyncd。启用网络时间并检查结果:
sudo timedatectl set-ntp true
timedatectl status
查看是否有 System clock synchronized: yes。强制执行:
sudo systemctl restart systemd-timesyncd
如果你使用 chrony
sudo chronyc makestep
chronyc tracking
如果你使用 ntpd
sudo ntpd -gq
ChromeOS
- ChromeOS 会自动设置时间且无法手动设定,因此时钟不对几乎总是时区选错了。
- 打开设置 › 高级 › 日期和时间。
- 把时区设为从列表中选择并选定你的地区,或让它使用你的位置。
- 如果仍然不对,退出账号再登录,或重启 Chromebook。
准确的时钟为何重要
登录与两步验证
验证器的动态码由当前时间推算而来。时钟偏差超过大约 30 秒,这些验证码就会失效。
安全连接
证书只在两个日期之间有效,所以时钟严重偏离会让完全正常的网站弹出“你的连接不是私密连接”的警告。
会议与提醒
日历提醒、计时器和定时任务都以本地时钟为准,因此会随之一起跑偏。