如何使用timedatectl命令设置时间区域和同步系统时钟


您知道如何从Linux命令行设置时间和时区吗?如果不知道,那么timedatectl命令可以帮助您设置时间和时区,它是systemd系统和服务管理器的一部分。本文介绍了“如何使用timedatectl命令设置时间、时区和同步系统时钟”。

查找和设置本地时区

要在Linux上显示时间和当前日期,请使用以下命令:

$ timedatectl status

示例输出应如下所示:

      Local time: Fri 2016-03-11 11:23:54 IST
  Universal time: Fri 2016-03-11 05:53:54 UTC
        Timezone: Asia/Kolkata (IST, +0530)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

系统时间通过时区管理。要获取系统时区,请使用以下命令:

$ timedatectl

示例输出应如下所示:

      Local time: Fri 2016-03-11 11:30:12 IST
  Universal time: Fri 2016-03-11 06:00:12 UTC
        Timezone: Asia/Kolkata (IST, +0530)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

要获取可用的时区,请使用以下命令:

$ 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
.....................

要在Linux中设置本地时区,请使用以下命令:

$ timedatectl set-timezone “Asia/Kolkata”

要验证上述命令的结果,请使用以下命令:

$ timedatectl

示例输出应如下所示:

      Local time: Fri 2016-03-11 11:42:22 IST
  Universal time: Fri 2016-03-11 06:12:22 UTC
        RTC time: Fri 2016-03-11 11:42:29
        Timezone: Asia/Kolkata (IST, +0530)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

要根据UTF设置时区,请使用以下命令:

$ timedatectl set-timezone UTC

要验证上述命令的结果,请使用以下命令:

$ timedatectl

示例输出应如下所示:

      Local time: Fri 2016-03-11 06:15:58 UTC
  Universal time: Fri 2016-03-11 06:15:58 UTC
        Timezone: UTC (UTC, +0000)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

设置时间和日期

要设置时间和日期,请使用以下命令:

$ timedatectl set-time 15:58:30

要验证上述命令的结果,请使用以下命令:

$ timedatectl

示例输出应如下所示:

      Local time: Fri 2016-03-11 15:58:40 IST
  Universal time: Fri 2016-03-11 10:28:40 UTC
        Timezone: Asia/Kolkata (IST, +0530)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

要从命令行设置日期,请使用以下命令:

$ timedatectl set-time 2015-11-20

要验证上述命令的结果,请使用以下命令:

$ timedatectl

示例输出应如下所示:

      Local time: Fri 2015-11-20 00:00:06 IST
  Universal time: Thu 2015-11-19 18:30:06 UTC
        Timezone: Asia/Kolkata (IST, +0530)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a To set both date and time, use the following command-
$ sudo timedatectl set-time "2014-11-08 06:40:00"

要验证上述命令的结果,请使用以下命令:

$ timedatectl

示例输出应如下所示:

      Local time: Sat 2014-11-08 06:40:11 IST
  Universal time: Sat 2014-11-08 01:10:11 UTC
        Timezone: Asia/Kolkata (IST, +0530)
     NTP enabled: yes
NTP synchronized: no
 RTC in local TZ: no
      DST active: n/a

设置Linux硬件时钟

要显示硬件时钟日期和时间,请使用以下命令:

# hwclock

示例输出应如下所示:

# hwclock
Friday 11 March 2016 12:25:56 PM IST -0.594257 seconds

要将系统时间复制到硬件时间,请使用以下命令:

# hwclock --systohc

要验证它,请使用以下命令:

# hwclock (for hardware date and time)
# date (for system date and time)

示例输出应如下所示:

# hwclock
Friday 11 March 2016 01:53:03 PM IST -0.359815 seconds
# date
Fri Mar 11 13:53:05 IST 2016

在上述结果中,硬件时钟和系统时钟的结果相同。

将Linux系统时钟与远程NTP服务器同步

NTP代表网络时间协议,它是一种用于在计算机之间同步时钟的互联网协议。timedatectl实用程序使您可以定期使用NTP将Linux系统时钟与远程服务器同步。要启动与远程NTP服务器的自动时间同步,请使用以下命令:

# timedatectl set-ntp true

要禁用NTP时间同步,请使用以下命令:

# timedatectl set-ntp false

恭喜!现在,您知道了“如何使用timedatectl命令设置时间、时区和同步系统时钟”。我们将在下一篇文章中学习更多关于此类Linux命令的内容。继续关注!

更新于:2019年10月18日

2K+ 浏览量

启动您的职业生涯

通过完成课程获得认证

开始学习
广告