使用timedatectl命令修改时间和时区
timedatectl是Linux下的一条命令,用于控制系统时间和日期。可以用来查询和更改系统时间设定,同时可以设定和修改时区信息。
1. 查看当前时间/日期/时区
命令:timedatectl或者timedatectl status
lckd@lckd:~$ timedatectl
Local time: Thu 2023-07-13 14:59:18 CST
Universal time: Thu 2023-07-13 06:59:18 UTC
RTC time: Thu 2023-07-13 06:59:18
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
命令介绍:
-
Local time:本地时间。
-
Universal time:世界标准时间。
-
RTC time:Real Time Clock,硬件时钟,主板上由电池供电的BIOS时间,hwclock -r可查看。
-
CST:中国标准时间,GMT+8=UTC+8=CST。
-
UTC:协调世界时, 世界标准时间。原子时为基础, 非常准确。约等于GMT。
-
GMT:格林尼治标准时间。UTC是根据原子钟来计算时间,而GMT是根据地球的自转和公转来计算时间。UTC是现在用的时间标准,GMT是老的时间计量标准。UTC更加精确,由于现在世界上最精确的原子钟50亿年才会误差1秒,可以说非常精确。
-
Time zone:时区。
-
System clock synchronized:系统时钟同步状态(yes表示系统时钟已同步)。
-
NTP service:NTP时钟同步服务。
-
RTC in local TZ:no表示硬件时钟设置为协调世界时(UTC),yes表示硬件时钟设置为本地时间。
2.查看所有可用时区
命令:timedatectl list-timezones
lckd@lckd:~$ timedatectl list-timezones
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Cairo
Africa/Casablanca
Africa/Ceuta
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/El_Aaiun
Africa/Freetown
3.设置时区
命令:timedatectl set-timezone “时区信息”
lckd@lckd:~$ timedatectl set-timezone "Asia/Shanghai"
也可以设置为时间标准时间时区:
lckd@lckd:~$ timedatectl set-timezone UTC
4.设置时间和日期
设置时间命令:timedatectl set-time HH:MM:SS
lckd@lckd:~$ timedatectl set-time 15:30:00
Failed to set time: Automatic time synchronization is enabled
# 注意: 如果ntp时间同步为true时无法修改时间设定
设置日期命令:timedatectl set-time YYYY-MM-DD
lckd@lckd:~$ timedatectl set-time 2023-07-13
Failed to set time: Automatic time synchronization is enabled
# 注意: 如果ntp时间同步为true时无法修改时间设定
设置日期时间命令:timedatectl set-time “YYYY-MM-DD HH:MM:SS”
lckd@lckd:~$ timedatectl set-time "2023-07-13 15:54:30"
Failed to set time: Automatic time synchronization is enabled
# 注意: 如果ntp时间同步为true时无法修改时间设定
5.设置硬件时钟
将硬件时钟设置为本地时间命令:timedatectl set-local-rtc 1
lckd@lckd:~$ timedatectl set-local-rtc 1
==== AUTHENTICATING FOR org.freedesktop.timedate1.set-local-rtc ===
Authentication is required to control whether the RTC stores the local or UTC time.
Authenticating as: lckd
Password:
==== AUTHENTICATION COMPLETE ===
lckd@lckd:~$ timedatectl
Local time: Thu 2023-07-13 15:57:06 CST
Universal time: Thu 2023-07-13 07:57:06 UTC
RTC time: Thu 2023-07-13 15:57:06
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: yes
将硬件时钟设置为UTC时间命令:timedatectl set-local-rtc 0
lckd@lckd:~$ timedatectl set-local-rtc 0
==== AUTHENTICATING FOR org.freedesktop.timedate1.set-local-rtc ===
Authentication is required to control whether the RTC stores the local or UTC time.
Authenticating as: lckd
Password:
==== AUTHENTICATION COMPLETE ===
lckd@lckd:~$ timedatectl
Local time: Thu 2023-07-13 15:58:41 CST
Universal time: Thu 2023-07-13 07:58:41 UTC
RTC time: Thu 2023-07-13 07:58:41
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active
RTC in local TZ: no
6.NTP时间同步设置
启用NTP时间同步命令:timedatectl set-ntp true
禁用NTP时间同步命令:timedatectl set-ntp false
lckd@lckd:~$ timedatectl set-ntp false
==== AUTHENTICATING FOR org.freedesktop.timedate1.set-ntp ===
Authentication is required to control whether network time synchronization shall be enabled.
Authenticating as: lckd
Password:
==== AUTHENTICATION COMPLETE ===
lckd@lckd:~$ timedatectl
Local time: Thu 2023-07-13 16:00:58 CST
Universal time: Thu 2023-07-13 08:00:58 UTC
RTC time: Thu 2023-07-13 08:00:58
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: inactive
RTC in local TZ: no