欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Win10和Ubuntu20.04双系统时间不同步问题

程序员文章站 2022-07-14 15:43:32
...

当我们安装完 Win10 和 Ubuntu20.04 双系统后,在 Ubuntu 下系统时间显示正常,但是回到 Win10 下面会发现此时的系统时间会与真实时间相差 8 个小时。

转念一想,8 个小时,标准北京时间和UTC时间(世界标准时间)也相差 8 个小时,是不是有什么玄机呢?


一、原因分析

主要原因:Windows 和 Ubuntu 它们在默认情况下看待硬件时间(主板上的 BIOS 显示的时间)的方式不一样。

首先了解几个时间概念:

  • UTC,即 Universal Time Coordinated,协调世界时
  • GMT,即 Greenwich Mean Time,格林尼治平时
  • RTC时间,即 Real-time clock,是电脑的硬件时间

GMT 时间是 UTC+0,表示比 UTC 时间快 0 个小时,标准北京时间是 UTC+8,表示比 UTC 时间快 8 个小时。

差异原因:

  • Ubuntu 把硬件时间(RTC)当作 UTC 时间,本地时间(Local time)是 UTC 时间经过换算得来的,标准北京时间就是 UTC+8

  • Windows 是直接把硬件时间(RTC)当作本地时间(Local time)


二、解决方法

一般安装双系统都是以 Windows 为主系统,Ubuntu 为辅,所以尽量不要动 Windows 的时间,从 Ubuntu 下手,操作步骤如下:

  • 进入 Ubuntu,打开终端,依次输入以下指令:
timedatectl set-local-rtc True --adjust-system-clock
# 根据 RTC 时间来更新系统时钟,而不是用 UTC 来更新

sudo hwclock -w
# 更新硬件时间

timedatectl
# 查看时间信息
  • 输入最后一条指令后,终端显示以下信息:
              Local time: 三 2021-06-09 14:32:12 CST
           Universal time: 三 2021-06-09 06:32:12 UTC
                 RTC time: 三 2021-06-09 14:32:14    
                Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes                       
              NTP service: active                    
          RTC in local TZ: yes                       
  • 此时硬件时间(RTC)已经与本地时间(Local time)相同,表示操作成功。
  • 重启进入 Windows,发现时间还没改回来,这时只需要在设置里同步一下时间即可。
  • 除了 Ubuntu,其他 Linux 系统也可以用这个方法解决。

三、总结

Linux 是一个非常优秀的开源操作系统,各种发行版也层出不穷,但是学习有一定门槛,初次使用也许会有很多问题,但是只要有一颗热爱的心,就一定可以找到很多解决问题的方法,最终成功解决问题。我目前使用的发行版是 Ubuntu 20.04,后续也会分享一些使用过程中自己遇到的问题以及解决问题的方法,希望大家可以一起探讨,共同进步。愿不惧困难,始终热爱,负重前行。