Linux中可以使用timedatectl命令来修改系统时间信息,具体命令中常见的参数格式及作用如下:
参数 | 作用 |
---|---|
status | 显示状态信息 |
list-timezones | 列出已知时区 |
set-time | 设置系统时间 |
set-timezone | 设置生效时区 |
注意: 以上命令都是在超级用户条件下来进行的
- 查看系统状态和时区:
[root@localhost ~]# timedatectl status
Local time: Thu 2022-03-24 11:22:47 CST
Universal time: Thu 2022-03-24 03:22:47 UTC
RTC time: Thu 2022-03-24 03:22:47
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: active // 同步服务器时间
RTC in local TZ: no
这里我们就可以使用set-time 命令来修改时间参数了
[root@localhost ~]# timedatectl set-time 2021-02-06
Failed to set time: NTP unit is active
可以看到这里报错了,是哪里出问题了呢?
不知有没有人注意到上面状态信息里有个 NTP service 这条信息,这里它是处于 active 状态的
那么这个NTP是什么呢?
其实它是同步服务器时间服务,它自动同步服务器时间,所以我们修改不了系统时间,那么怎么关闭它呢?
在虚拟机中打开设置,找到时间日期设置
可以看到这条状态是开启的,关掉它,这时再次查看状态信息
[root@localhost ~]# timedatectl status
Local time: Thu 2022-03-24 11:58:22 CST
Universal time: Thu 2022-03-24 03:58:22 UTC
RTC time: Thu 2022-03-24 03:58:22
Time zone: Asia/Shanghai (CST, +0800)
System clock synchronized: yes
NTP service: inactive
RTC in local TZ: no
这是可以看到 NTP 服务已经是 inactive 状态,此时再去修改时间
[root@localhost ~]# timedatectl set-time 2021-03-05
[root@localhost ~]#
我们修改日期为2021-03-05
再来查看一下当前时间
[root@localhost ~]# date
Fri Mar 5 00:00:04 CST 2021
可以发现,日期修改成功了。