Linux中的日期命令

在本教程中,我们将介绍 date 命令。

date 命令显示或设置系统日期。 它最常用于以不同格式打印日期和时间,并计算将来和过去的日期。

使用Linux date 命令#

的语法 date 命令如下:

date [OPTION]... [+FORMAT]

要使用默认格式显示当前系统时间和日期,请在不使用任何选项和参数的情况下调用命令:

date

输出包括星期几,月份,月份,时间,时区和年份:

Sat Jun  1 14:31:01 CEST 2019

日期格式选项

输出 date 命令可以用一系列格式控制字符格式化,后跟一个 + 标志。 格式控件以 % 符号和被其值替换。

date +"Year: %Y, Month: %m, Day: %d"

%Y 字符将替换为年份, %m 与月份和 %d 与当月的日期:

Year: 2019, Month: 06, Day: 02

这是另一个示例:

date "+DATE: %D%nTIME: %T"
DATE: 06/02/19
TIME: 01:47:04

下面是一些最常见的格式字符的一小部分:

  • %a -语言环境的简短工作日名称(例如,星期一)
  • %A -语言环境的完整全日名称(例如星期一)
  • %b -语言环境的简称(例如Jan)
  • %B -语言环境的缩写的长月名称(例如,一月)
  • %d -一个月中的某天(例如01)
  • %H -小时(00..23)
  • %I -小时(01..12)
  • %j -一年中的某天(001..366)
  • %m -月(01..12)
  • %M -分钟(00..59)
  • %S -秒(00..60)
  • %u -星期几(1..7)
  • %Y -全年(例如,2019年)

要获取所有格式选项的完整列表,请运行 date --help 要么 man date 在您的终端中。

日期字串#

-d 选项可让您在特定日期进行操作。 您可以将日期指定为易于理解的日期字符串,如下所示:

date -d "2010-02-07 12:10:53"
Sun Feb  7 12:10:53 CET 2010

使用自定义格式:

date -d '16 Dec 1974' +'%A, %d %B %Y'
Monday, 16 December 1974

日期字符串接受“明天”,“星期五”,“上周五”,“下周五”,“下个月”,“下周”等值。

date -d "last week"
Sat May 25 14:31:42 CEST 2019

您还可以使用日期字符串选项显示不同时区的本地时间。 例如,要显示下周一星期一在澳大利亚东海岸的当地时间6:30,您可以输入:

date -d 'TZ="Australia/Sydney" 06:30 next Monday'
Sun Jun  2 22:30:00 CEST 2019

覆盖时区

date 命令返回默认系统时区中的日期。 要使用其他时区,请设置环境变量 TZ 到所需的时区。

例如,要显示澳大利亚墨尔本时间,您可以输入:

TZ='Australia/Melbourne' date
Sat Jun  1 22:35:10 AEST 2019

要列出所有可用时区,您可以在 /usr/share/zoneinfo 目录或使用 timedatectl list-timezones 命令。

时代转换器#

date 命令可以用作纪元转换器。 纪元(Unix时间戳)是自1970年1月1日UTC时间00:00:00以来经过的秒数。

要打印从纪元到当前日期的秒数,请调用 date%s 格式控制:

date +%s
1559393792

要将自纪元以来的秒转换为日期,请将秒设置为以开头的日期字符串 @

date -d @1234567890
Sat Feb 14 00:31:30 CET 2009

使用 date 与其他命令

date 命令最常用于创建包含当前时间和日期的文件名。

以下命令将以以下格式创建Mysql备份文件 database_name-20190601.sql

mysqldump  database_name > database_name-$(date +%Y%m%d).sql

您也可以使用 date Shell脚本中的命令。 在下面的示例中,我们将分配输出 datedate_now 变量:

date_now=$(date "+%F-%H-%M-%S")

echo $date_now
2019-06-01-15-02-27

显示文件的最后修改时间

date 用命令 -r 选项显示文件的最后修改时间。 例如:

date -r /etc/hosts
Tue Jul 24 11:11:48 CEST 2018

如果要修改文件时间戳,请使用 touch 命令。

设置系统时间和日期

使用手动设置系统时间和日期 date 不建议使用该命令,因为在大多数Linux发行版中,系统时钟使用 ntp 或者 systemd-timesyncd 服务。

但是,如果要手动设置系统时钟,则可以使用 --set= 选项。 例如,如果要将日期和时间设置为2019年6月1日下午5:30,则应输入:

date --set="20190601 17:30"

结论#

的Linux date 命令显示或设置系统日期和时间。

如果您有任何疑问或反馈,请随时发表评论。

日期终端

Sidebar