1.时钟分类
硬件时钟(Hardware Clock):又称为 CMOS时钟(CMOS Clock)、BIOS时间(BIOS Time)、实时时钟(Real Time Clock,RTC),就是我们按键盘上的 F2 按键(不同的电脑可能不同)进入 BIOS 后所看到的时钟,此时钟所存储的时间由主板电池维持,仅能保存:年、月、日、时、分、秒这些时间数值,无法保存 时间标准(UTC 或 Local Time)。
操作系统时钟(System Clock):又称为 软件时钟(Software Clock),就是我们 Windows 操作系统桌面右下角的时钟,不仅保存了:年、月、日、时、分、秒这些时间数值,还保存了 时间标准(UTC 或 Local Time)。
2.时间标准
Universal Time Coordinated(UTC,世界协调时)时间标准:不依赖于时区的全球时间标准。
Local Time(地方时)时间标准:依赖于当前时区的时间标准。
3.时间管理流程
大部分操作系统的时间管理流程如下:
- 启动时根据硬件时钟设置操作系统时钟
- 运行时通过操作系统的时间同步功能联网校正操作系统时钟
- 关机时根据操作系统时钟设置硬件时钟
默认情况下,Windows 操作系统启动时,操作系统时钟 会读取 硬件时钟 所存储的时间,因为 Windows 操作系统会将读取到的时间执行 Local Time(地方时) 时间标准,所以最终 操作系统时钟 显示的时间就是 硬件时钟 所存储的时间。
默认情况下,Linux 操作系统启动时,操作系统时钟 会读取 硬件时钟 存储的时间,因为 Linux 操作系统会将读取到的时间执行 UTC 时间标准,所以最终 操作系统时钟 显示的时间会在 硬件时钟 所存储的时间的基础上加上 8 个小时(中国的时区为 UTC+8)。
注意:有一部分 Linux 操作系统时间管理流程与 Windows 操作系统一样。
4.解决方案
将 Windows 时间标准更改为 Linux 时间标准,即都使用 UTC 时间标准,这样做的好处是可以防止夏令时时间错乱。
Windows操作系统->开始->Windows系统->运行->输入 regedit
->点击“确定”,进入注册表编辑器。依次单击切换到如下路径:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\
右击 TimeZoneInformation
->新建->QWORD (64 位)值。右击刚刚新建的值->修改。配置如下:
数值名称 | RealTimeIsUniversal |
数值数据 | 1 |
基数 | 十六进制 |
最后,单击Windows操作系统桌面右下角的时间->日期和时间配置->关闭“自动设置时间”、“自动设置时区”、“自动调整为夏令时”,重新启动 Windows 操作系统即可。
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/osexp/3562.html