双系统的时间相差8小时问题

举报
黄生 发表于 2020/08/27 10:53:49 2020/08/27
【摘要】 1.电脑里有硬件时钟,有电,会走。这个时钟里,只存有日期和时间,它没有,也不知道时区、或夏令时(国内现在也没这个)等概念2.所以在系统里,开机后读取到硬件时钟后,显示给用户之前,有个转换过程,即转换为本地时间再显示给用户3.我们来看看Linux系统里的转换过程I.开机了,先读取硬件时钟,硬件时钟里存的日期时间到底是多少,有个命令可以看到:sudo hwclock -r -l2020-08...

1.电脑里有硬件时钟,有电,会走。这个时钟里,只存有日期和时间,它没有,也不知道时区、或夏令时(国内现在也没这个)等概念

2.所以在系统里,开机后读取到硬件时钟后,显示给用户之前,有个转换过程,即转换为本地时间再显示给用户

3.我们来看看Linux系统里的转换过程

I.开机了,先读取硬件时钟,硬件时钟里存的日期时间到底是多少,有个命令可以看到:

sudo hwclock -r -l
2020-08-27 01:46:02.405640+08:00

这里-r代表读取硬件时钟,-l代表把这个读取到的日期时间当做本地时间看,也就是说不用转换啦

所以这里的输出是硬件时钟里存的原始数据,这里是1点多,实际我这里的时间要+8,就是9点多

II.Linux会将硬件时间当UTC时间看,而我在系统设置的时区是Asia/Shanghai,所以系统会自动加8小时,再显示给我现在是9点多。正确。

III.前面说了Linux会将硬件时间当UTC时间看,不仅表现在读取,也表现在写入,当关机时,Linux将系统时间转换为UTC,再写入硬件时钟。这里就是将系统时间减去8小时。

4.好了。如果是双系统,这时当你启动进入Windows发现,哇,怎么还是1点多,明明已经9点了。问题原因就是windows默认将硬件时间当本地时间,读取后直接显示给用户啦。

5.解决办法。其实有2种办法,这里就说1种,改Windows这一边的配置,让它的行为和Linux一样。RealTimeIsUniversal 这个注册表键就是do这个的,设置一下即可


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。