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

Windows 与 Linux 缺省系统硬件时间:

Windows把系统硬件(RTC)时间当作本地时间(local time),即系统时间与BIOS中显示的时间(RTC)一样。

时区:因时区不同显示的时间不同,牵扯到夏令时和调整等问题,date命令可查看

系统时钟(System Clock): linux OS的时间,date命令可查看,系统时间是UTC+8(北京时间是GMT+8)

硬件时钟(RTC):Real Time Clock 主板上由电池供电的BIOS时间,hwclock -r可查看,Linux把 UTC当作硬件时间

NTP(Network Time Protocol):本机时间和实际的时间之间的经常会有差别,一般使用NTP服务器进行时间校准


timedatectl常见用法:

查看当前时间/日期/时区:timedatectl或者timedatectl status

查看所有可用时区:timedatectl list-timezones

设置时区:timedatectl set-timezone “时区信息”

设置UTC:timedatectl set-timezone UTC

设置时间:timedatectl set-time HH:MM:SS

设置日期:timedatectl set-time YYYY-MM-DD

设置日期时间:timedatectl set-time “YYYY-MM-DD HH:MM:SS”

设置硬件时钟为本地时间:timedatectl set-local-rtc 1

设置硬件时钟为UTC时间:timedatectl set-local-rtc 0

启动NTP时间同步(启用NTP服务或者Chrony服务):timedatectl set-ntp true

禁用NTP时间同步:timedatectl set-ntp false


1、方法1:在Ubuntu系统中,命令行输入

sudo apt-get install ntpdate          //在Ubuntu下更新本地时间
sudo ntpdate ​​time.windows.com​​
sudo hwclock --localtime --systohc //将本地时间更新到硬件上

2、方法2:(对于低版本的Ubuntu系统可能有效)

让Ubuntu不使用UTC时间, 而使用BIOS时间:

将 /etc/default/rcS 中的 UTC=yes 改为 no // 高版本(16.04之后)的Ubuntu系统可能在default文件夹下找不到rcS文件,见方法3

让Windows使用UTC时间,而不使用BIOS时间:

开始->运行->CMD,打开命令行程序(Vista则要以管理员方式打开命令行程序方可有权限访问注册表),
在命令行中输入下面命令并回车:

 Ubuntu22.0.4时间同步_Ubuntu

3、方法3 :终端输入:timedatectl set-local-rtc 1 --adjust-system-clock    重启。

--adjust-system-clock,当使用set-local-rtc命令时,若使用了此选项,则表示根据RTC时间来更新系统时钟,而不是用UTC来更新(UTC需要+8)。若未使用此选项,则表示根据系统时钟来更新RTC时间。

参考博文: