CentOS7日期和时间管理中的timedatectl命令是系统和服务管理程序systemd的一部分。用于查看和改变系统软件时钟的配置。因此,系统管理人员也可使用timedatectl命令改变当前的系统时间和日期、设置时区或使用它自动将系统时间同步于远端的时钟服务器。
显示日期与时间相关信息,直接运行timedatectl命令:
[root@linux ~]# timedatectl Local time: Tue 2018-10-16 16:24:58 CST --本地时间 Universal time: Tue 2018-10-16 08:24:58 UTC --国际标准时间 RTC time: Tue 2018-10-16 08:24:57 --硬件时钟(Real-Tome Clock) Time zone: Asia/Shanghai (CST, +0800) --当前的时区 NTP enabled: n/a --NTP是否使能(Network Time Protocol) NTP synchronized: no RTC in local TZ: no DST active: n/a --夏时制是否启用 |
设置当前时间使用以下方式:
timedatectl set-time HH:MI:SS
其中,HH表示小时,MI表示分钟,SS表示秒,使用命令是需要设置具体的小时、分钟和秒,该命令同时改变了系统时间和硬件时钟。但是如果系统启用了NTP服务,命令执行会失败。报错如下所示,表示运行自动时间同步的情况下设置时间失败。
Failed to set time: Automatic time synchronization is enabled
默认情况下,系统被配置为使用UTC时间。要将系统配置为在本地时间维护时钟,运行timedatectl命令,使用set-local-rtc选项,相关格式如下:
timedatectl set-local-rtc [yes|no|y|n|0|1|true|false|t|f]
set-local-rtc选项的缺省参数是no,即使用UTC时间。
如果设置当前日期,命令的使用格式如下:
timedatectl set-time YYYY-MM-DD
例如设置当前时间为2008年8月8日,操作如下:
timedatectl set-time "2008-08-08" [root@linux ~]# timedatectl timedatectl Local time: 五 2008-08-08 00:00:04 JST Universal time: 四 2008-08-07 15:00:04 UTC RTC time: 四 2008-08-07 15:00:04 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: no NTP synchronized: no RTC in local TZ: no DST active: n/a |
如果由于已设置时间同步,设置时出现报错,需要关闭时间自动同步功能,使用如下命令:
timedatectl set-ntp false
如果继续启用时间同步,使用如下命令:
timedatectl set-ntp true
如果设置当前的时间和日期,命令的使用格式如下:
timedatectl set-time YYYY-MM-DD HH:MI:SS
显示全部的时区列表,使用如下命令:
timedatectl list-timezones
[root@linux ~]# timedatectl list-timezones Africa / Abidjan Africa / Accra Africa / Addis_Ababa Africa / Algiers Africa / Asmara 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 Africa / Gaborone Africa / Harare ...... [root@linux ~]# timedatectl list-timezones|wc -l 425 |
如果需要给系统设置本地时区,使用set-timezone选项,如下所示设置时区:
timedatectl set-timezone 时区名称
注意,时区名为timedatectl list-timezones所查出的时区,不能随意写。例如,将当前系统设置为日本东京时区,首先查找日本东京的时区名称,如下操作:
[root@linux ~]# timedatectl list-timezones|grep -i tokyo
Asia/Tokyo
然后,设置本地时区为“Asia/Tokyo”,如下操作:
[root@linux ~]# timedatectl set-timezone "Asia/Tokyo" [root@linux ~]# timedatectl Local time: 四 2021-05-20 15:30:15 JST Universal time: 四 2021-05-20 06:30:15 UTC RTC time: 四 2021-05-20 06:30:14 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a |