date

dateは日付と時刻を表示または変更するLinuxコマンドです。Linuxで日付や時刻を表示したり変更する方法を紹介します。

現在の日付と時刻を表示する。

$ date
2021年  6月 30日 水曜日 12:08:53 JST

JSTとは日本標準時(Japan Standard Time)のことである。

書式

date コマンドには書式を文字列で指定することができる。書式に空白が含まれる場合は、引用符で囲む。

%d
日 (day)
$ date +%d
22
%F
%Y-%m-%d と同じ
$ date +%F
2021-06-30
%m
数字2桁での月 (month)
$ date +%m/%d/%y
05/22/21
%H
時 (hour)
$ date +%H:%M:%S
21:51:06
%h
文字列での月
$ date +"%h %d, %Y"
May 22, 2021
%M
分 (minutes)
$ date +%M
35
%N
ナノ秒 (nanoseconds)
$ date +%T.%N
13:16:01.337757500
%3N
ミリ秒
$ date +%T.%3N
13:21:35.663
%n
改行 (newline)
$ date +%m/%d/%Y%n%H:%M:%S
05/22/2021
21:56:30
%S
秒 (seconds)
$ date +%S
46
%T
%H:%M:%S と同じ
tsuka@$ date +%T
13:13:39
%t
タブ (tab)
$ date +%m/%d/%Y%t%H:%M:%S
05/22/2021      21:57:40
%Y
西暦4桁での年 (year)
$ date +%m/%d/%Y
05/22/2021
%y
西暦4桁のうち下2桁での年 (year)
$ date +%m/%d/%y
05/22/21
%%
%

コマンド・オプション

date コマンドには次のコマンド・オプションを指定できる。

-d string

現在の日付と時刻ではなく、引数で指定した日付と時刻を表示する。

$ date -d 20211231
2021年 12月 31日 金曜日 00:00:00 JST
$ date -d yesterday
2021年  6月 29日 火曜日 13:32:29 JST
--date string
現在の日付と時刻ではなく、引数で指定した日付と時刻を表示する。
$ date -d tomorrow
2021年  7月  1日 木曜日 13:31:25 JST
$ date -d "2 day ago"
2021年  6月 28日 月曜日 13:32:57 JST
--help

ヘルプを表示して終了する。

-u
協定世界時 (UTC) を印刷または設定する。
--utc
協定世界時 (UTC) を印刷または設定する。
$ date --utc
2021年  6月 30日 水曜日 04:27:01 UTC
--universal
協定世界時 (UTC) を印刷または設定する。
--version

バージョン情報を出力して終了する。

ロケール

dateコマンドを実行して表示される日付と時刻の書式は、ロケールに影響を受ける。

現在のロケールを確認するには、locale コマンドを実行する。

$ locale
LANG=C.UTF-8
LANGUAGE=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME=ja_JP.UTF-8
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_PAPER="C.UTF-8"
LC_NAME="C.UTF-8"
LC_ADDRESS="C.UTF-8"
LC_TELEPHONE="C.UTF-8"
LC_MEASUREMENT="C.UTF-8"
LC_IDENTIFICATION="C.UTF-8"
LC_ALL=

ロケールの優先順位と意味は次のとおりである。

ロケールの優先順位と意味
優先順位 ロケール 意味
1 LC_ALL 全般(優先度高)
2 LC_CTYPE 文字の判定・操作・文字数のカウントなどに影響する。
LC_NUMERIC 金額に関係しない数値の表示(小数の区切り文字など)に影響する。
LC_TIME 日付と時刻の表示に影響する。
LC_COLLATE 並び換えや正規表現に用いる文字の照合順序に影響する。
LC_MONETARY 金額に関連する数値、通貨記号の表示に影響する。
LC_MESSAGES メッセージに表示する言語、および肯定と否定の応答表現に影響する。
LC_PAPER 標準的な紙のサイズの寸法に影響する。
LC_NAME 人に呼びかける際に使用されるフォーマットに影響する。
LC_ADDRESS 場所や地理関連の項目の表示に影響する。
LC_TELEPHONE 電話サービスで使用されるフォーマットに影響する。
LC_MEASUREMENT ロケールの測定系(メートル法かフィート単位系か)に影響する。
LC_IDENTIFICATION ロケールのメタデータに影響する。
3 LANG 全般(優先度低)

ロケールに設定できる値の一覧を表示するには、-a オプションを指定して locale コマンドを実行する。

$ locale -a
C
C.UTF-8
POSIX
en_US.utf8
ja_JP.utf8

ロケールは大文字と小文字を区別しない。また、ハイフンは無視する。したがって、次に示すロケールはすべて同じ意味である。

ロケールに設定できる値のリストの中に日本語(ja_JP.utf8)が無い場合、日本語の言語パッケージをインストールする。

$ sudo apt install language-pack-ja

Linuxコマンド