在 Bash 中格式化日期和時間

Nilesh Katuwal 2023年1月30日
  1. 在 Bash 中使用內建的 printf 格式化日期和時間
  2. 在 Bash 中使用 date 命令格式日期和時間
在 Bash 中格式化日期和時間

要在 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