Mobo/BIOS 和 OS 之间的时间是如何计算的?

Mobo/BIOS 和 OS 之间的时间是如何计算的?

我正在尝试解决 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

相关内容