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-%y
はMM-DD-YY
形式で日付を出力します。
#!/bin/bash
today=`date +%m-%d-%y`
echo $today
Output:
$ bash example.sh
10-08-21
2.2 「MM-YYYY」形式で日付を出力
%m-%Y
はMM-YYYY
形式で日付を出力します。
#!/bin/bash
today=`date +%m-%Y`
echo $today
Output:
$ bash example.sh
10-2021
2.3 「MM/DD/YY」形式で日付を出力
%D
はMM/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 |
Related Posts
- Bash Shell - 文字列の出力方法(echo, printf)
- Bash Shell - 数値比較演算子
- Bash Shell - 変数が定義されているかどうかを確認する方法
- Bash Shell - スリープ関数、特定の時間を停止する
- Bash Shell - 文字列 切り出し(substring、split)
- Bash Shell - 日付、時刻を取得する
- Bash Shell - 文字列を連結する方法
- Bash Shell - ファイルの生成と文字列の追加
- Bash Shell - 文字列比較、文字列が含まれているかどうかを確認する
- Bash Shell - 条件文(if-else)
- Bash Shell - 数値演算(プラス、マイナス、乗算、除算)