Bash日期格式化

Bash日期格式化

在本小节中,我们将了解日期命令的可用格式选项,并了解如何与Bash脚本一起使用。

Bash日期

Bash Shell提供了不同的日期命令以及不同的格式选项。我们可以使用这些命令将Bash日期格式化为所需的日期。

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>'

 Bash日期格式选项列表

可以使用不同类型的格式代码或字符,可以与日期选项一起使用以生成格式输出。以下是日期命令的一些常见选项和格式代码的列表:

选项 描述
-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,并执行得到以下结果:

示例1

务必注意格式选项代码区分大小写。在此示例中,使用%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,并执行得到以下结果:

示例2

示例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,并执行得到以下结果:

示例3