本方法适用于解决Ubuntu22.04和Windows10双系统时间不同步的问题,也适用于其它版本的Ubuntu如20.04、18.04或windows7.
先说下两个概念:
UTC即Universal Time Coordinated,协调世界时(世界统一时间)
GMT 即Greenwich Mean Time,格林尼治平时
Windows 与 Mac/Linux 看待系统硬件时间的方式是不一样的:
Windows把计算机硬件时间当作本地时间(local time),所以在Windows系统中显示的时间跟BIOS中显示的时间是一样的。
Linux/Unix/Mac把计算机硬件时间当作 UTC, 所以在Linux/Unix/Mac系统启动后在该时间的基础上,加上电脑设置的时区数( 比如我们在中国,它就加上“8” ),因此,Linux/Unix/Mac系统中显示的时间总是比Windows系统中显示的时间快8个小时。
所以,当你在Linux/Unix/Mac系统中,把系统现实的时间设置正确后,其实计算机硬件时间是在这个时间上减去8小时,所以当你切换成Windows系统后,会发现时间慢了8小时。就是这样个原因。
因此操作如下:
1)对于Ubuntu22.04(高版本Ubuntu)+win10
打开Ubuntu终端,命令行输入:
sudo apt-get install ntpdate //安装网络时间同步
sudo ntpdate time.windows.com //同步windows服务器时间,同步其它网络授权时间亦可
sudo hwclock --localtime --systohc //将本地时间更新到硬件上
2)对于其它无法修改rcs的Ubuntu版本(Ubuntu16.04及以上版本)
打开Ubuntu终端,命令行输入:
timedatectl set-local-rtc 1 --adjust-system-clock
3)对于低版本的Ubuntu(Ubuntu16.04以下版本)
让Ubuntu不使用UTC时间, 而使用BIOS时间
nano /etc/default/rcS
将其中的UTC=yes 改为 no
在windows的命令行输入处:
Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1