Linux date命令示例

date用于命令显示或设置系统日期。它最常用于以不同格式打印日期和时间,并计算将来和过去的日期。在本教程中,我们将介绍date命令的基础知识。

4 min read
By myfreax
Linux date命令示例

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

在本教程中,我们将介绍date命令的基础知识。date命令的语法是date [OPTION]... [+FORMAT]

date命令使用默认系统时区。要使用其他时区,请将环境变量 TZ设置为所需时区。

要使用默认格式显示当前系统时间和日期,请调用不带任何选项的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。%H24小时制00..23%I12小时制01..12

%j一年中的某天001..366%m月份01..12%M分钟00..59%S00..60%u星期几1..7%Y全年,例如2019年。

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

日期字串

-d选项允许您使用指定日期进行操作。可以将日期解释为易于理解的日期字符串,你也可以指定自定义的格式。

日期字符串还可以接受诸如“tomorrow”, “friday”, “last friday” “next friday”, “next month”, “next week”等值。

由于date命令使用默认系统时区。要使用其他时区,请将环境变量 TZ设置为所需时区。

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

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

date -d '16 Dec 1974' +'%A, %d %B %Y'
#date -d "last week"
#date -d 'TZ="Australia/Sydney" 06:30 next Monday'

Unix时间戳转换器

date命令可用作纪元转换器,也就是Unix时间戳。Unix时间戳是自1970年1月1日UTC时间00:00:00起经过的秒数。

要打印从纪元到当前日期的秒数,请使用%s格式控件,命令是date +%s。要将纪元以来的秒转换为日期,请将秒设置为日期字符串,前缀为@

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

日期与文件

date命令最常用于创建包含当前时间和日期的文件名。例如使用日期作为文件名创建Mysql备份文件。您也可以在Shell脚本中使用date命令,创建日期时间的变量。

date命令还可以显示文件的最后修改时间。date-r选项可显示文件的最后修改时间,

date_now=$(date "+%F-%H-%M-%S")我们分配date的输出到date_now变量。

mysqldump  database_name > database_name-$(date +%Y%m%d).sql命令将格式database_name-20190601.sql

命令date -r /etc/hosts。显示/etc/hosts文件最后修改时间。如果要修改文件时间戳,请使用touch命令

设置系统时间和日期

通常不建议使用date命令手动设置系统时间和日期,因为在大多数Linux发行版中,系统时钟使用ntpsystemd-timesyncd服务进行同步。

但是,如果要手动设置系统时钟,则可以使用--set=选项。例如,如果要将日期和时间设置为2019年6月1日下午5:30,你可以运行命令date --set="20190601 17:30"

到目前为止,您应该对如何使用Linux date命令有一个很好的了解。如果您有任何问题或反馈,请随时发表评论。

Related Articles