![Mobo/BIOS 和 OS 之间的时间是如何计算的?](https://linux22.com/image/1456872/Mobo%2FBIOS%20%E5%92%8C%20OS%20%E4%B9%8B%E9%97%B4%E7%9A%84%E6%97%B6%E9%97%B4%E6%98%AF%E5%A6%82%E4%BD%95%E8%AE%A1%E7%AE%97%E7%9A%84%EF%BC%9F.png)
我正在尝试解决 Windows 8.1 PC 经常丢失时间跟踪的问题,有时会从(例如)一天的下午 1 点到前一天的早上 8 点。值会有所不同。
每次我在 Windows 中检查 BIOS 时钟时发现时钟错误,BIOS 中的值都是相同的。非常错误。每次我在 Windows 中手动同步到时间服务器时,BIOS 都会反映时间变化。
实时时钟和操作系统级时钟之间有什么关系?Windows 同步是否仅用于校正时钟,然后根据主板提供的值运行?怎么会发生这样的事情?
需要注意的是,这种情况是在计算机开启并正常运行时发生的,因此我认为 CMOS 电池是否良好并不重要,因为这与错误时间启动无关。这种情况是在计算机运行时发生的。
(我看到一个关于计算机系统中如何测量时间的相关问题,但它似乎没有回答这个问题)
PC 是定制的,配有 Z87 Pro Asus Mobo。
答案1
有两个选项:将 BIOS 时间设置为本地时间或 UTC。每个人都使用后者,只有 Windows 使用本地时间。因此在 Windows 中,Windows 只是从 NTP 服务器获取时间,计算本地时间并将其写入 BIOS。在 UNIX/Linux/等上,UTC 用于 BIOS 时间,操作系统只需添加时间调整偏移量来计算本地时间。
这里描述了如何通过注册表“修复” Windows 使用 UTC: Archwiki:时间#UTC_in_Windows