• 硬件时间,操作系统时间,Windows 和linux 双系统时间差8小时问题说明


    1、硬件时间:硬件时钟是存储在主板上CMOS里的时间即BIOS时间,关机后该时钟依然运行,主板的电池为它供电。对应于嵌入式设备有一个RTC模块。硬件时钟即RTC时钟。信息比较少没时区、夏令时的概念。

    2、系统时间:是软件系统的时钟。软件启动时会去读取硬件时间,之后则独立运行。独立于硬件时间,拥有时区、夏令时等信息。系统时间又因为系统的不同使用了两种时间管理方法:

    2.1、localtime:本地时间,目前只有 Windows 在使用。Windows 认为硬件时间就是本地时间,所以会直接把主板中的时间拿来当做当前的时间。设置或同步时间后也会把“正确”的时间写入主板,即操作系统中显示的时间跟BIOS中显示的时间是一样的。

    2.1、UTC:是一种世界标准时间(伦敦当地时间),Linux、Mac等类 UNIX系统多数会使用,UTC 加减时区之后才是本地时间。而类UNIX系统认为硬件时间是 UTC 标准时间,即把硬件时间当作 UTC,操作系统中显示的时间是硬件时间经过换算得来的(加减时区),即操作系统中显示的时间跟BIOS中显示的时间不一样相差对应的时区,比如说北京时间是UTC+8,则系统中显示时间是硬件时间+8。

    3、当PC中Windows 和linux 双系统共存时,就出现了问题。

    例如当你的linux设置的时区为北京时间东八区,当前系统时间为9:00AM。则此时硬件中存储的实际是UTC 时间1:00AM。这时你重启进入Windows后,你会发现windows系统中显示的时间是 1:00AM,比linux中慢了八个小时。同理,你在Windows中更改或用网络同步了系统时间后,再到linux中去看,系统就会快了8小时。 在实行夏令时的地区,情况可能会更复杂些。

    4、解决办法

    大致上有两种思路,一种是让 Windows 使用 UTC 时间;另一种则是让 Linux 使用 localtime,具体的操作这里就不写了。

     

  • 相关阅读:
    二分法查找算法
    [Java]事件驱动程序设计
    spring 事件驱动模型简介
    事件驱动模型实例详解(Java篇)
    协程
    事件驱动模型的简单Java实现
    负载均衡技术(一)———负载均衡技术介绍
    知物由学 | 未来50年网络安全行业发展愿景
    知物由学 | 如何从勒索软件的攻击中全身而退
    “网易大数据讲堂第一期:数说”直播活动资料:课程回放收看及PPT下载
  • 原文地址:https://www.cnblogs.com/pipci/p/8378399.html
Copyright © 2020-2023  润新知