Linux通过timedatectl设置各种时间参数、日期时间同步设置
inux通过timedatectl设置各种时间参数、日期时间同步设置
例如显示系统当前的日期和时间,命令和输出如下:
$ timedatectl
               Local time: Mon 2019-09-30 04:05:00 EDT
           Universal time: Mon 2019-09-30 08:05:00 UTC
                 RTC time: Mon 2019-09-30 08:05:00
                Time zone: China Standard Time (CST), UTC +8
System clock synchronized: no
              NTP service: inactive
          RTC in local TZ: no
通过远程服务器进行时间同步
您可以启用NTP远程服务器进行系统时钟的自动同步。是否启用NTP,可在root权限下执行如下命令进行设置。其中 boolean 可取值yes和no,分别表示启用和不启用NTP进行系统时钟自动同步,请根据实际情况修改。
说明:
若启用了NTP远程服务器进行系统时钟自动同步,则不能手动修改日期和时间。若需要手动修改日期或时间,则需确保已经关闭NTP系统时钟自动同步。可执行timedatectl set-ntp no 命令进行关闭。
# timedatectl set-ntp boolean
例如开启自动远程时间同步,命令如下:
# timedatectl set-ntp yes
修改日期
说明:
修改日期前,请确保已经关闭NTP系统时钟自动同步。
修改当前的日期,在root权限下执行如下命令,其中 YYYY 代表年份,MM 代表月份,DD 代表某天,请根据实际情况修改:
# timedatectl set-time YYYY-MM-DD
例如修改当前的日期为2019年8月14号,命令如下:
# timedatectl set-time '2019-08-14'
修改时间
修改时间前,请确保已经关闭NTP系统时钟自动同步。查看NTP服务是否运行,命令如下:
systemctl status ntp
关闭NTP服务,命令如下:
systemctl disable ntp
修改当前的时间,在root权限下执行如下命令,其中 HH 代表小时,MM 代表分钟,SS 代表秒,请根据实际情况修改:
# timedatectl set-time HH:MM:SS
例如修改当前的时间为15点57分24秒,命令如下:
# timedatectl set-time 15:57:24
修改时区
显示当前可用时区,命令如下:
$ timedatectl list-timezones
要修改当前的时区,在root权限下执行如下命令,其中 time_zone 是您想要设置的时区,请根据实际情况修改:
# timedatectl set-timezone time_zone
例如修改当前的时区,首先查询所在地域的可用时区,此处以Asia为例:
# timedatectl list-timezones | grep Asia
Asia/Aden
Asia/Almaty
Asia/Amman
Asia/Anadyr
Asia/Aqtau
Asia/Aqtobe
Asia/Ashgabat
Asia/Baghdad
Asia/Bahrain
……
Asia/Seoul
Asia/Shanghai
Asia/Singapore
Asia/Srednekolymsk
Asia/Taipei
Asia/Tashkent
Asia/Tbilisi
Asia/Tehran
Asia/Thimphu
Asia/Tokyo
然后修改当前的时区为“Asia/Shanghai”,命令如下:
# timedatectl set-timezone Asia/Shanghai
使用date命令设置
显示当前的日期和时间
显示当前的日期和时间,命令如下:
$ date
默认情况下,date命令显示本地时间。要显示UTC时间,添加--utc或-u参数:
$ date --utc
要自定义对应的输出信息格式,添加 +"format" 参数:
$ date +"format"
表 1 参数说明
| 格式参数 | 说明 | 
|---|---|
| %H | 小时以HH格式(例如 17)。 | 
| %M | 分钟以MM格式(例如 37)。 | 
| %S | 秒以SS格式(例如 25)。 | 
| %d | 日期以DD格式(例如 15)。 | 
| %m | 月份以MM格式(例如 07)。 | 
| %Y | 年份以YYYY格式(例如 2019)。 | 
| %Z | 时区缩写(例如CEST)。 | 
| %F | 日期整体格式为YYYY-MM-DD(例如 2019-7-15),等同%Y-%m-%d。 | 
| %T | 时间整体格式为HH:MM:SS(例如 18:30:25),等同%H:%M:%S。 | 
实际使用示例如下:
- 
显示当前的日期和本地时间。
$ date 2019年 08月 17日 星期六 17:26:34 CST - 
显示当前的日期和UTC时间。
$ date --utc 2019年 08月 17日 星期六 09:26:18 UTC - 
自定义date命令的输出。
$ date +"%Y-%m-%d %H:%M" 2019-08-17 17:24 
修改时间
要修改当前的时间,添加--set或者-s参数。在root权限下执行如下命令,其中 HH 代表小时,MM 代表分钟,SS 代表秒,请根据实际情况修改:
# date --set HH:MM:SS
默认情况下, date命令设置本地时间。要设置UTC时间,添加--utc或-u参数:
# date --set HH:MM:SS --utc
例如修改当前的时间为23点26分00秒,在root权限下执行如下命令:
# date --set 23:26:00
修改日期
修改当前的日期,添加--set或者-s参数。在root权限下执行如下命令,其中 YYYY 代表年份,MM 代表月份,DD 代表某天,请根据实际情况修改:(注意,执行修改日期操作后,相应的时间会重置为00:00:00)
# date --set YYYY-MM-DD
例如修改当前的日期为2019年11月2日,命令如下:
# date --set 2019-11-02
使用hwclock命令设置
可以使用 hwclock 命令设置硬件时钟RTC (Real Time Clock) 。
硬件时钟和系统时钟
Linux 将时钟分为:
- 系统时钟 (System Clock) :当前Linux Kernel中的时钟。
 - 硬件时钟 RTC:主板上由电池供电的主板硬件时钟,该时钟可以在BIOS的 "Standard BIOS Feature" 项中进行设置。
 
当Linux启动时,会读取硬件时钟,并根据硬件时间来设置系统时间。
显示日期和时间
显示当前硬件的日期和时间,在root权限下执行如下命令:
# hwclock
例如显示当前硬件的日期和时间,命令和输出如下:
# hwclock
2019-08-26 10:18:42.528948+08:00
设置日期和时间
修改当前硬件的日期和时间,在root权限下执行如下命令,其中 dd 表示日,mm 表示月份,yyyy 表示年份,HH 表示小时,MM 表示分钟,请根据实际情况修改:
# hwclock --set --date "dd mm yyyy HH:MM"
例如修改当前的时间为2019年10月21日21点17分,命令如下:
# hwclock --set --date "21 Oct 2019 21:17" --utc
                
            
        
浙公网安备 33010602011771号