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