如何解决Windows 10和Ubuntu的时差问题?

2024-03-31 -

背景

一个阳光明媚的中午,你打开它,却发现它显示当前时间是四点:

啊,原来是这个原因

一个概念: BIOS时间:系统的硬件时间。

时间不同步,原因很简单:

我认为BIOS时间是当地时间。 这样BIOS时间就会直接显示出来。

我认为BIOS时间应该是UTC时间(格林威治标准时间)。 因此,BIOS时间会加8小时后显示(中国)。

所有操作系统(无论是否)都会在启动后更新系统时间。 流程如下:

1. 打开计算机,读取BIOS时间并显示。 (直接显示,加8再显示)

2. 连接互联网后,获取当地时间并显示。

3.更新BIOS时间。

连接互联网后,大家得到的时间都是当地时间,没有问题。 但其做法与更新BIOS时不同。 获取本地时间后,直接将BIOS时间设置为本地时间; 并将BIOS时间设置为UTC时间。 例如现在是北京时间12点,UTC时间是12-8=4点,那么BIOS时间就会设置为4点。

案件

请退出,进入,在终端中输入命令来验证上面的分析:

timedatectl status 

该命令用于查看系统时间状态。 如果您的显示如下所示:

这个工具对于时间管理来说非常方便

第一行Local time=12 o'clock,是从网上获取的当地时间。

第三行,RTC time=4点钟,是电脑的BIOS时间。 可以看到,本地时间减去8小时,就得到了UTC时间,并分配给BIOS。

最后一行,RTC in local TZ=no,表示系统时间和BIOS时间不同步,即BIOS存储的是UTC时间,系统时间为本地时间。

那么问题来了。 下次重新启动时,BIOS 时间读取为 4 点钟,但 BIOS 时间被认为是本地时间,因此会直接显示 4 点钟。 不过,他也可以连接到互联网。 当他得到正确的12点钟后,他会将BIOS设置为12点钟。 然后下次登录的时候,他就会把8点加到12点,得到20点,然后输出——如此循环,每次更换系统,显示的时间都不正确。

解决方案

解决方案非常简单。 直接在终端输入:

timedatectl set-local-rtc 1

这句话的作用是同步系统时间和BIOS时间。 现在,大家都认为BIOS时间就是当地时间。 在线更新时,BIOS时间也直接设置为当地时间。 这样就没有问题了。

出错同步电脑系统时间不对_电脑系统时间同步出错_电脑系统时间同步失败

现在再次输入查看系统时间状态:

这是给你的开发人员的,不是我的。

第一行,当地时间=12点。

第三行,RTC时间=12点,即BIOS也设置为12点。

最后一行,本地 TZ 中的 RTC 更改为 yes。 系统时间和BIOS时间同步。

会弹出一个窗口告诉你这个方法不太好,但是为了同步两个系统的时间,我们只能这样做。

现在重启并输入,你会看到时间正确了:

是的是的

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权本站发表,未经许可,不得转载。

扫一扫在手机阅读、分享本文