Linuxのdateコマンドで日付や現在時刻を設定・変更する方法と指定フォーマットでの表示方法を紹介!!
本記事では「Linux」の「date」コマンドを使った日付・現在時刻の設定方法を紹介していきます。「Linux」の「date」コマンドの指定フォーマットの表示方法をマスターして、「Linux」を使いこなしていきましょう。
目次
Linux dateコマンドとは?どんな事ができるのか?
本記事冒頭の本章では、「Linux」の「date」コマンドとはどういったコマンドなのか紹介していきます。「Linux」の基本的なコマンドの一つ、使い方や設定方法・表示方法を覚えておくと非常に便利です。まずは、「Linux」で利用できる「date」コマンドの基本的な知識をつけていきましょう。
dateコマンドは日付・時間を取得できるコマンド
「Linux」の「date」コマンドは、現在の時刻・時間・日付を表示するためのコマンドとなります。「Linux」を使ったプログラムなどで、日付・時刻・時間を取得して分岐処理する際によく利用されるプログラムです。例を挙げると、下記のプログラムに利用します。
「Linux」の「date」コマンド利用例1 | 数日前・数日後の日付や時刻を取得する |
「Linux」の「date」コマンド利用例2 | 「Linux」の日付・時刻・時間を設定する |
「Linux」の「date」コマンド利用例3 | 世界協定時間「UTC」を取得する |
「Linux」の「date」コマンド利用例4 | フォーマットを指定して日付 |
「Linux」の「date」コマンド利用例5 | フォーマットを指定して時刻・時間を取得する |
「Linux」の「date」コマンドは、主に上記の様な利用目的で使用されています。それぞれのコマンドは次の項目で個別に紹介してくので参考にしてみてください。
主なオプション
前の項目で紹介した利用例は、下記の主なオプション・コマンドを利用することで実行可能です。
「date」コマンドの主なオプション一覧 | コマンド | オプション設定の説明 |
「date」コマンドの主なオプション1 | -d | 指定オプションで時刻・日付の取得 |
「date」コマンドの主なオプション2 | -s | 時間・日付を設定する |
「date」コマンドの主なオプション3 | -u | 世界協定時間「UTC」を取得する |
「date」コマンドの主なオプション4 | +format | フォーマットを指定して日付 時刻・時間を取得する |
本記事では、上記4つのコマンドとオプションの設定方法を詳しく紹介していくので参考にしてみてください。
Linux dateの時刻・日付の2種類の設定方法
時刻・日付の設定方法その1 | 「MMDDhhmm形式」で日時を指定設定する方法 |
時刻・日付の設定方法その2 | -sや–set オプションで設定する方法 |
本章では、上記2つの時刻・日付の設定方法を個別に紹介していきます。
MMDDhhmm形式で日時を指定設定する方法
date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]] |
MM | 月 |
DD | 日付 |
hh | 時間(時) |
mm | 時間(分) |
CC | 年の最初の二桁※省略可能 |
YY | 年の最後の二桁※省略可能 |
ss | 時間(秒)※省略可能 |
-sや–set オプションで設定する方法
date [-s|--set] 年月日時刻 |
「date [-s|--set] 年月日時刻」は標準的な入力方法で時間(時刻)・日付を入力できるので便利です。時刻・時間を未設定の状態で日付だけを設定すると「00:00:00」という時間表記になるので注意しましょう。
Linux dateで現在日時を指定フォーマットでの表示方法
続いて「date」コマンドを使った現在の時間・日付を指定フォーマットで表示する方法、また、フォーマットを変更・指定して表示する方法を紹介していきます。現在の時間・日付を表示する場合は「date」を入力するだけで表示されるので試してみましょう。
フォーマットで指定できる内容を確認
フォーマットを変更・指定して表示する場合は、環境変数である「LANG」を用います。下記の例を参照してください。
フォーマットを変更・指定して現在の日付を表示する場合 | LANG="設定" date |
「設定」の部分にフォーマットを挿入します。下記は米国の標準時間表示方法を用いた場合です。
LANG=C date | Thu Oct 24 15:00:00 JST 2019 |
date | 2019年 10月24日 木曜日 15:00:00 JST |
Linux dateの色々な使用例を紹介
最後に「Linux」の「date」コマンドを使った様々な利用例をコマンドと一緒に紹介していきます。応用方法を覚えておくことで、更に多岐に渡ってコマンドを利用することが可能となります。
UTCからの経過秒数を変更(1970年01月01日)
【1970年01月01日 00時00分00秒(UTC)】から現在まで、経過した秒数をわかりやすく日付に変更して表示するオプションを紹介します。
STEP1 | 【date --date='@秒数'】で経過秒数を表示します。 |
STEP2 | 【$ date +%s】コマンドで【1496044598(秒数)】が表示されます。 |
STEP3 | 【$ date --date='@1496044598'】で経過後の秒数が日付で表示されます。 |
ロケールを指定して表示する事ができる
ロケールを指定して表示する場合は、前の章で紹介した「LANG」を利用します。日本時間表示・米国時間表示のコマンドを応用して表示する方法は、下記の通りです。
# env LANG=ja_JP.UTF-8 date | 日本時間ロケールを指定して表示する場合 |
# env LANG=en_US.UTF-8 date | 米国時間ロケールを指定して表示する場合 |
月末の判定確認
月末の判定確認は、下記のコマンドで確認します。
$ date --date "1 day" +%d |
1 | DAY=`date --date "1 day" +%d` |
2 | |
3 | if [ $DAY = "01" ];then |
4 | echo "The end of the month." |
5 | else |
6 | echo "Not the end of the month." |
7 | fi |
Linux dateコマンドで時刻と日付のプログラム管理しよう!
本記事では、「Linux」の「date」コマンドの利用方法や、応用方法を紹介していきました。「date」コマンドの応用方法は、まだまだたくさんあるので、本記事で紹介した基本形をベールに応用していくと良いでしょう。「date」コマンドは基本的なコマンドとなるので、本記事で紹介したコマンドを参考に活用してみてください。