Bash Shell - 日付、時刻を取得する

Bash shell scriptでdateを使用して、日付、時刻を取得する方法を説明します。

1. dateで日付を取得する

次のコードは、dateの実行結果をtoday変数に格納します。 dateは、日付、時刻を取得コマンドです。

次のコードでquotes(`)を使用した方法または$を使用した方法のいずれかを選択いただきご使用下さい。

#!/bin/bash

today=`date`
echo $today

today=$(date)
echo $today

上記のコードを実行してみると、システムに設定されたLocaleの言語にdateおよびtimeが出力されます。

$ bash example.sh
2021. 10. 08. (금) 18:59:04 KST
2021. 10. 08. (금) 18:59:04 KST

2. formatを適用して希望の形式で日付、時刻を出力する

次のようなsyntaxにdateにformatを適用して、希望の形式で出力することができます。

date +FORMAT

2.1 「MM-DD-YY」形式で日付を出力

%m-%d-%yMM-DD-YY形式で日付を出力します。

#!/bin/bash

today=`date +%m-%d-%y`
echo $today

Output:

$ bash example.sh
10-08-21

2.2 「MM-YYYY」形式で日付を出力

%m-%YMM-YYYY形式で日付を出力します。

#!/bin/bash

today=`date +%m-%Y`
echo $today

Output:

$ bash example.sh
10-2021

2.3 「MM/DD/YY」形式で日付を出力

%DMM/DD/YY形式で日付を出力します。

#!/bin/bash

today=`date +%D`
echo $today

Output:

$ bash example.sh
10/08/21

3. 時間だけ出力

%Tは時間だけ出力します。

#!/bin/bash

time=`date +%T`
echo $time

Output:

$ bash example.sh
19:06:56

3.1時間のみ出力(12時形式で出力)

%rは12時形式で時間だけ出力します。時間は、SystemのLocale言語で表現されます。

#!/bin/bash

time=`date +%r`
echo $time

Localeが ko_KRあるとき、上記のコードは、次のように出力します。

$ bash example.sh
오후 07시 06분 56초

Localeが en_USあるとき、上記のコードは、次のように出力します。

$ bash example.sh
07:06:56 PM

3.2 HH:MM形式での時間出力

%H:%Mは、時間と分出力します。

#!/bin/bash

time=`date +%H:%M`
echo $time

Output:

$ bash example.sh
19:06

4. 特定の日時出力

4.1現在から1日前/後の日付出力

-d "-1 days"オプションは、現在ので一日前の日付を出力します。 + daysは次の日の日付を出力します。

#!/bin/bash

yesterday=`date -d "-1 days"`
echo $yesterday

tommorrow=`date -d "+1 days"`
echo $tommorrow

Output:

$ bash example.sh
2021. 10. 07. (목) 19:16:10 KST
2021. 10. 09. (토) 19:16:10 KST

数週間前/後、または数か月前/後の時間は、次のようにインポートすることができます。

#!/bin/bash

date=`date -d "+2 weeks"`
echo $date

date=`date -d "-3 months"`
echo $date

4.2 特定の日付にフォーマットを適用する

次のように特定の時間の日付formatを適用して、希望の形式で出力することができます。

#!/bin/bash

date=`date -d "-3 months" "+%m-%d-%Y"`
echo $date

Output:

$ bash example.sh
07-08-2021

5. さまざまなフォーマット

下記のように様々なformatがあります。これを参考して、希望の形式で、日付、時刻を取得することができます。

Format Description
date +%a Gives name of the weekday [Mon, Sun, Fri]
date +%A Gives name of the weekday [Monday, Sunday, Friday]
date +%b Gives name of the month [Jan, Feb, Mar]
date +%B Gives name of the month [January, February, March]
date +%d Displays day of the month [05]
date +%D Displays current date MM/DD/YY format [11-01-21]
date +%F Shows date in YYYY-MM-DD format [2021-11-01]
date +%H Shows hour in 24-hour format [22]
date +%I Shows hour in 12-hour format [11]
date +%j Displays the day of the year [001 – 366]
date +%m Displays the number of the month [01-12]
date +%M Displays minutes [00-59]
date +%S Displays seconds [00-59]
date +%N Displays in Nanoseconds
date +%T Displays time as HH:MM:SS [in 24-hour format]
date +%u Day of the week [1-7] 1 is Monday, 6 is Saturday
date +%U Shows week number of the year [00-53]
date +%Y Displays year YYYY [2021]
date +%Z Displays Time zone
codechachaCopyright ©2019 codechacha