Bash での日付と時間のフォーマット
Linux シェルスクリプトで日付または時刻をフォーマットするには、標準の date コマンドを使用します。
同じコマンドをシェルスクリプトで使用できます。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
年を 4 桁に変換するには、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
現在の日付をシェル変数に保存するには、次のようにします。
$ cdate=$(date +"%m-%d-%Y")
$ echo $cdate
現在の日付を取得し、cdate
に保存しました。echo
は cdate
値を出力します。
出力:
12-21-2021
日付
に N
日を追加するには、次のコマンドを使用します。
date -d="YYYY-MM-DD+N days"
例を見てみましょう。
$ date -d "2021-12-21+20 days"
出力:
Mon 10 Jan 2022 12:00:00 AM