在 Bash 中格式化日期和時間
Nilesh Katuwal
2023年1月30日
2022年5月11日
要在 Linux shell 指令碼中格式化日期或時間,請使用標準 date 命令。
相同的命令可用於 shell 指令碼。Linux 中的 date 命令顯示和更改系統日期和時間。
使用者還可以使用此命令以各種格式列印時間並計算未來和以前的日期。
在 Bash 中使用內建的 printf
格式化日期和時間
在大於或等於 4.2
的 bash 版本中,最好使用 printf
內建日期格式化程式而不是外部日期格式化程式。
要獲得 YYYY-MM-DD
格式:
$ printf '%(%Y-%m-%d)T\n' -1
-1
表示當前時間。
輸出:
2021-12-21
我們也可以將上面的命令寫成:
$ printf '%(%F)T\n' -1
輸出:
2021-12-21
我們可以通過使用 -v
並指定變數名稱來儲存當前時間。要將當前時間儲存在變數 cdate
中並列印它,我們可以執行以下操作:
$ printf -v cdate '%(%F)T' -1
$ echo $cdate
上面的命令捕獲當前日期作為變數並將其儲存在 cdate
中,echo
將列印變數的值。
輸出:
2021-12-21
在 Bash 中使用 date
命令格式日期和時間
我們可以對低於 4.2
的 bash 版本使用 date
命令。
以 MM-DD-YY
格式顯示當前日期:
$ date +"%m-%d-%y"
+
符號表示使用者定義的格式字串,它指定日期和時間的顯示方式。
輸出:
12-21-21
要將年份轉換為四位數,請將 y
更改為 Y
。
$ date +"%m-%d-%Y"
輸出:
12-21-2021
我們還可以執行以下操作以 YYYY-MM-DD
格式列印當前日期。
$ date -I
輸出:
2021-12-21
僅顯示時間:
$ date +"%T"
輸出:
13:01:00
以 HH:MM
格式顯示時間:
$ date +"%H-%M"
輸出:
13-02
要將當前日期儲存在 shell 變數中,我們可以執行以下操作:
$ cdate=$(date +"%m-%d-%Y")
$ echo $cdate
我們已經捕獲了當前日期並將其儲存在 cdate
中。echo
列印 cdate
值。
輸出:
12-21-2021
要在 date
中新增 N
天,我們使用以下命令:
date -d="YYYY-MM-DD+N days"
讓我們看一個例子。
$ date -d "2021-12-21+20 days"
輸出:
Mon 10 Jan 2022 12:00:00 AM