双系统的时间相差8小时问题
【摘要】 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)