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,具体的操作这里就不写了。
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,具体的操作这里就不写了。