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 -语言环境的长月份缩写名称(例如1月)
  • %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起经过的秒数。

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

date +%s
1559393792

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

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

将日期与其他命令一起使用

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发行版中,系统时钟使用ntpsystemd-timesyncd服务进行同步。

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

date --set="20190601 17:30"

结论

到目前为止,您应该对如何使用Linux date命令有一个很好的了解。

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

如果你喜欢我们的内容可以选择在下方二维码中捐赠我们,或者点击广告予以支持,感谢你的支持