1.时钟分类
硬件时钟,又名 实时时钟RTC(Real Time Clock) 或 CMOS 时钟,此时钟由主板电池驱动,仅能保存:年、月、日、时、分、秒这些时间数值,无法保存时间标准(UTC 或 localtime)和是否使用夏令时调节。
系统时钟,又名 软件时钟,与硬件时间分开维护,保存了:时间、时区和夏令时设置。
2.时间标准
UTC时间(世界协调时):UTC 是与时区无关的全球时间标准。
localtime(本地时间):依赖于当前时区。
timezone(时区):中国时区是UTC+8。
3.时间管理流程
大部分操作系统的时间管理流程如下:
- 启动时根据硬件时钟设置系统时间
- 运行时通过时间同步联网校正时间
- 关机时根据系统时间设置硬件时间
Windows默认会调用硬件时钟时间作为localtime(本地时间),并以系统时钟显示。
Linux默认会调用硬件时钟时间作为UTC时间,并在此基础上加上8个小时作为localtime(本地时间),最终以系统时钟显示。
4.解决方案
将Windows时间管理流程改变为Linux时间管理流程,使用UTC时间,这样做的好处是可以防止夏令时错乱。
使用regedit
,新建如下 DWORD 值(32位操作系统)或 QWORD 值(64位操作系统),并将其值设为十六进制的 1
。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneInformation\RealTimeIsUniversal
Windows 使用 UTC 后,请记得禁用 Windows 的时间同步功能(无需禁用时区同步功能),以防关机时Windows将系统时间错误设置硬件时间,最后重启系统即可。
原创文章,作者:huoxiaoqiang,如若转载,请注明出处:https://www.huoxiaoqiang.com/experience/linuxe/3562.html