在本小节中,我们将了解日期命令的可用格式选项,并了解如何与Bash脚本一起使用。
Bash Shell提供了不同的日期命令以及不同的格式选项。我们可以使用这些命令将Bash日期格式化为所需的日期。
可以使用date
命令来显示或更改系统的当前日期和时间值。使用date
命令以不同的格式打印日期和时间值。我们还可以使用此命令来计算与日期和时间值相关的任务。如果不带任何选项使用date
命令,它将打印当前系统的日期和时间值。此命令包含多个格式化选项以格式化输出。
date
命令的语法如下:
$ date
如上所述,可以格式化Bash日期。还可以使用空格在格式中。
date
命令可以接受选项,例如:
$ date +<format-option-codes><format-option-codes>
如果要用空格格式化日期,可以使用以下语法:
$ date '+<format-option-codes><format-option-codes> <format-option-codes>'
可以使用不同类型的格式代码或字符,可以与日期选项一起使用以生成格式输出。以下是日期命令的一些常见选项和格式代码的列表:
选项 | 描述 |
---|---|
-d 或 -date= String |
用于显示由字符串值设置的时间。 |
-s , -set=String |
用于设置由字符串值设置的时间。 |
-f 或 -file=DateFile |
用于处理多个日期。 |
-I 或 -iso-8601[=Timespec] |
用于生成符合ISO 8601的日期/时间字符串输出。 |
-r 或 -reference=File |
用于打印文件的最后修改时间。 |
-u , -utc , -universal |
用于打印或设置世界标准时间。 |
-help |
用于获取此命令的帮助。 |
-version |
用于获取版本信息。 |
格式化选项代码
带代码的格式选项 | 日期的一部分 | 描述 | 输出示例 |
---|---|---|---|
date +%a |
工作日(周一至周五) | 缩写形式的工作日名称(例如,Sun,Mon,Tue,Wed,Thu,Fri,Sat) | Mon |
date +%A |
工作日(周一至周五) | 完整格式的工作日名称(例如,Sunday, Monday, Tuesday等) | Monday |
date +%b |
月份 | 缩写形式的月份名称(例如,Jan, Feb, Mar等) | Feb |
date +%B |
月份 | 完整格式的月份名称(例如,January, February等) | February |
date +%d |
日 | 一个月中的某天 | 28 |
date +%D |
MM/DD/YYYY | 当前的日期; 以MM/DD/YYYY 格式显示 |
09/21/2019 |
date +%F |
YYYY-MM-DD | 日期; 以YYYY-MM-DD 格式显示 |
2019-09-21 |
date +%H |
小时 | 24小时制的小时值 | 16 |
date +%I |
小时 | 12小时制的小时值 | 04 |
date +%j |
日 | 一年中的某天(例如001 至 366) | 256 |
date +%m |
月份 | 月份数值(01 至 12,其中01是一月) | 08 |
date +%M |
分钟 | 分钟数值(00 至 59) | 12 |
date +%S |
秒钟 | 秒钟数值(00 至 59) | 35 |
date +%N |
纳秒 | 纳秒数值(000000000 至 999999999) | 450261236 |
date +%T |
HH:MM:SS |
格式为HH:MM:SS 的时间(小时,以24格式表示) |
17:58:15 |
date +%u |
星期 | 星期几(01到07,其中01是星期一) | 05 |
date +%U |
星期数 | 显示年份的星期数,其中星期日是一周的第一天(00到53) | 24 |
date +%Y |
年份 | 显示完整的年份(即YYYY) | 2021,2019 |
date +%Z |
时区 | 时区缩写(例如IST,GMT) | GMT |
我们可以根据需要为date
命令使用上面提到的任何格式(第一列)。
示例1
Bash日期格式MM-DD-YYYY
,要使用MM-DD-YYYY
格式的日期,可以使用命令date +%m-%d-%Y
。
Bash脚本程序如下:
#!/bin/bash d=`date +%m-%d-%Y` echo "Date in format MM-DD-YYYY" echo $d #MM-DD-YYYY
将上面示例代码保存到文件:date-example1.sh,并执行得到以下结果:
务必注意格式选项代码区分大小写。在此示例中,使用%m
表示月,使用%d
表示天,使用%Y
表示年。如果使用%M
代替%m
,那么它将定义为分钟。
示例2 - Bash日期格式MM-YYYY
要使用MM-YYYY
格式的日期,可以使用命令date +%m-%Y
。
示例代码:
#!/bin/bash d=`date +%m-%Y` echo "Date in format MM-YYYY" echo $d # MM-YYYY
将上面示例代码保存到文件:date-example2.sh,并执行得到以下结果:
示例3 -Bash日期格式工作日DD-月份-YYYY
要使用工作日DD月份,YYYY格式的日期,可以使用命令date +%A %d-%B, %Y
。
Bash脚本程序
#!/bin/bash d=`date '+%A %d-%B, %Y'` echo "Date in format Weekday DD-Month, YYYY" echo $d # Weekday DD-Month, YYYY
将上面示例代码保存到文件:date-example3.sh,并执行得到以下结果: