Linux通过命令提示符设置日期和时间

时间:2020-01-09 10:40:41  来源:igfitidea点击:

如何在命令提示符(bash shell)中设置系统日期和时间?我没有安装GUI,并且正在通过ssh会话登录。如何在Linux操作系统下设置日期?使用date命令显示当前日期和时间,或通过ssh会话设置系统日期/时间。您也可以从X终端以root用户身份运行date命令。 如果Linux服务器的时间和/或日期不正确,并且需要在shell提示符下将其设置为新值,则此功能很有用。

您必须以root用户身份登录才能使用date命令。

Linux显示当前日期和时间

只需输入date命令:

$ date

输出示例:

Mon Jan 21 01:31:40 IST 2019

Linux显示硬件时钟(RTC)

执行以下hwclock命令以读取硬件时钟并在屏幕上显示时间:

# hwclock -r

或者

# hwclock --show
$ sudo hwclock --show --verbose

或以世界标准时间(UTC)显示它:

# hwclock --show --utc

输出示例:

2019-01-21 01:30:50.608410+05:30

Linux Set Date命令示例

使用以下语法设置新数据和时间:

date --set="STRING"

例如,将新数据设置为2006年10月2日18:00:00,以root用户身份执行以下命令:

# date -s "2 OCT 2006 18:00:00"

或者

# date --set="2 OCT 2006 18:00:00"

您还可以使用以下语法简化格式:

# date +%Y%m%d -s "20081128"

Linux Set Time示例

要设置时间,请使用以下语法:

# date +%T -s "10:13:13"

其中:

  • 10:小时(hh)
  • 13:分钟(mm)
  • 13:秒(ss)

使用与AM或PM等效的%p语言环境,执行:

# date +%T%p -s "6:10:30AM"
# date +%T%p -s "12:10:30PM"

如何将硬件时钟设置为当前系统时间?

使用以下语法:

# hwclock --systohc

或者

# hwclock -w

关于基于系统的Linux系统的注释

对于基于systemd的系统,您需要使用timedatectl命令来设置或查看当前日期和时间。
最现代的发行版,例如RHEL/CentOS v.7.x +,Fedora Linux,Debian,Ubuntu,Arch Linux和其他基于systemd的系统,都需要timedatectl实用程序。
请注意,以上命令也应在现代系统上运行。

timedatectl:显示当前日期和时间

执行以下命令:

$ timedatectl

Systemd Linux timedatecetl命令显示当前日期和时间

如何使用timedatectl命令更改当前日期?

要更改当前日期,请以root用户身份执行以下命令:

# timedatectl set-time YYYY-MM-DD

或者

$ sudo timedatectl set-time YYYY-MM-DD

例如,将当前日期设置为2014-12-01(2014年12月1日):

# timedatectl set-time '2014-12-01'
# timedatectl

输出示例:

Local time: Tue 2014-12-01 00:00:03 EST
  Universal time: Tue 2014-12-01 05:00:03 UTC
        RTC time: Tue 2014-12-01 05:00:03
       Time zone: America/New_York (EST, -0500)
     NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
      DST active: no
Last DST change: DST ended at
                  Sun 2014-11-01 01:59:59 EDT
                  Sun 2014-11-01 01:00:00 EST
Next DST change: DST begins (the clock jumps one hour forward) at
                  Sun 2015-03-13 01:59:59 EST
                  Sun 2015-03-13 03:00:00 EDT

要同时更改日期和时间,请使用以下语法:

# timedatectl set-time YYYY-MM-DD HH:MM:SS

其中:

  • HH:一个小时。
  • MM:一分钟。
  • SS:秒,全部以两位数字形式输入。
  • YYYY:四位数的年份。
  • MM:两位数的月份。
  • DD:每月的两位数字。

例如,将日期设置为2014年11月23日,时间设置为上午8:10:40,执行:

# timedatectl set-time '2014-11-23 08:10:40'
# date

如何仅设置当前时间?

语法为:

# timedatectl set-time HH:MM:SS
# timedatectl set-time '10:42:43'
# date

输出示例:

Mon Nov 23 08:10:41 EST 2014

如何使用timedatectl命令设置时区?

要查看列出所有可用时区,请执行:

$ timedatectl list-timezones
$ timedatectl list-timezones | more
$ timedatectl list-timezones | grep -i asia
$ timedatectl list-timezones | grep America/New

要将时区设置为亚洲/加尔各答,请执行:

# timedatectl set-timezone 'Asia/Kolkata'

验证一下:

# timedatectl
Local time: Mon 2014-11-23 08:17:04 IST
  Universal time: Mon 2014-11-23 02:47:04 UTC
        RTC time: Mon 2014-11-23 13:16:09
       Time zone: Asia/Kolkata (IST, +0530)
     NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
      DST active: n/a

如何使用NTP将系统时钟与远程服务器同步?

只需执行以下命令:

# timedatectl set-ntp yes

验证一下:

$ timedatectl

输出示例:

Local time: Mon 2014-11-23 08:18:49 IST
  Universal time: Mon 2014-11-23 02:48:49 UTC
        RTC time: Mon 2014-11-23 02:48:50
       Time zone: Asia/Kolkata (IST, +0530)
     NTP enabled: yes
NTP synchronized: yes
RTC in local TZ: no
      DST active: n/a