date - 日付や時間の表示と設定をする

スポンサーリンク

dateコマンドはシステムの時間を表示または設定できます。

システムの時間を表示する場合はフォーマット形式の文字列を用いて、表示したい形式を生成できます。

-dオプションを用いると指定した時間について表示することもできます。

dateコマンドの構文

時間の表示

'+'の記号とフォーマット文字列の組み合わせで、表示する時間の文字列を指定します。

時間の設定

月(MM)、日(DD)、時(hh)、分(mm)、4桁または2桁の西暦(CCYY)、秒(ss)を指定して、時間を設定します。

時間の表示

デフォルトの表示

dateコマンドを引数なしで実行する場合、現在時間を表示します。また、デフォルトの表示はLC_TIME=Cで'+%a %b %e %H:%M:%S %Z %Y'を指定したものになります。

コマンド例

実行結果

環境変数LC_TIMEを変更することによって、表示が変化します。以下の例では、envコマンドを利用して全ての環境変数を削除してdateコマンドを実行した例です。

コマンド例

実行結果

時分秒の表示

利用できるフォーマットの表(時分秒)

フォーマット意味
%H時(24時間表記)で0埋め
%I時(12時間表記)で0埋め
%k時(24時間表記)でスペース埋め
%l時(12時間表記)でスペース埋め
%M
%S
%Nナノ秒
%pAMかPM
(日本語:午前か午後)
%Pamやpm
(日本語:午前や午後)
%r12時間の時計時間
%R24時間の時・分
%sUNIXのエポック時間
%T24時間の時・分・秒
%Xロケールに合わせた時間表示
%zタイムゾーン(+0900)
%:zタイムゾーン(+09:00)
%::zタイムゾーン(+09:00:00)
%:::zタイムゾーン(+09)
%Zタイムゾーンの略称

コマンド例と実行結果(LC_TIME=C)

環境変数LC_TIMEの設定によって、一部の表記が変更されます。

日付の表示

利用できるフォーマットの表

フォーマット意味
%Y4桁の西暦
%y下2桁の西暦
%C上2桁の西暦
%m
%d
%e日でスペース埋め
%D日付(%m/%d/%y)
%F日付でISO8601形式(%Y-%m-%d)
%aロケールでの曜日の名前
%Aロケールでの曜日の名前(フルネーム)
%bロケールでの月の名前(略称)
%hロケールでの月の名前(略称)(%bと同じ)
%Bロケールでの月の名前(フルネーム)
%cロケールでの日付と時間
%j1年の中の日にち
%w1週間の中の曜日(0:日曜日)
%u1週間の中の曜日(1:月曜日)
%U1年の内の週の数字
最初の日曜日が1週目でそれ以前が0週目
%W1年の内の週の数字
最初の月曜日が1週目でそれ以前が0週目
%q四半期での数字
(1-3月:1,4-6月:2,7-9月:3,10-12月:4)
%VISO8601での週の数字
%gISO8601での年(下2桁)
%GISO8601での年
%xロケールでの日付表示

コマンド例と実行結果(LC_TIME=C)

環境変数LC_TIMEの設定によって、一部の表記が変更されます。

時間の設定

最初の文字に+の記号を使わない場合、dateコマンドは時間の設定を行います。

時間の設定の構文は

になります。月(MM)、日(DD)、時(hh)、分(mm)、4桁または2桁の西暦(CCYY)、秒(ss)を指定して、時間を設定できます。時間の設定には管理者権限が必要です。

また、以下のコマンド例では一時的にシステムの時間を変更した後で、ntpdateコマンドで日本の公開NTPサーバを指定して時間を修正しています。

コマンド例と実行結果

ntpdateコマンドのインストールは

になります。

dateコマンドのオプション

日付・時・分・秒を指定して表示
(-dオプション)

-dオプションは現在の時間の代わりに指定した文字列を解析して、その時間を表示します。

コマンド例

実行結果

解析された文字列の情報を表示
(--debugオプション)

--debugオプションを用いると、-dオプション等で解析された時間の文字列の情報を表示できます。

コマンド例と実行結果

ファイルから文字列を読み込み時間を表示
(-fオプション)

-fオプションは、ファイルを指定し、そのファイルの文字列を解析して、その文字列に対応する時間を表示できます。

コマンド例

datefile.txt

実行結果

ISO8601形式で時間を表示
(-Iオプション)

-Iオプションは、ISO8601形式(%Y-%m-%d)で時間を表示できます。

-Iオプションに追加で文字列を指定すると表示できる情報を増えます。
'hours'を指定すると時が、
'minites'を指定すると時・分が、
'seconds'を指定すると時・分・秒が、
'ns'を指定すると時・分・秒・ナノ秒の情報が追加で表示されます。

コマンド例と実行結果

ファイルの修正時間を表示
(-rオプション)

-rオプションは、指定したファイルの修正時間を表示できます。

コマンド例と実行結果

電子メールに適した時間を表示
(-Rオプション)

-Rオプション(--rfc-emailオプション)は、RFC5322RFC2822RFC822で定められた電子メールに適した時間を表示します。

コマンド例

実行結果

RFC3339形式の時間を表示
(--rfc-3339オプション)

--rfc-3339オプションを用いると、RFC3339で定められたインターネット上のタイムスタンプの形式で時間を表示できます。

また、--rfc-3339オプションは'date'、'seconds'、'ns'の文字列を指定する必要があります。

コマンド例と実行結果

時間の文字列で時間を設定
(-sオプション)

-sオプションは、-dオプションで用いた時間の文字列を用いて、時間を設定できます。

コマンド例と実行結果

協定世界時を利用
(-uオプション)

-u(--utc,--universal)オプションを用いると、dateコマンドは協定世界時(UTC)で時間を扱います。例えば、-uオプションを利用してdateコマンドを用いると、タイムゾーンがUTCになり、UTCに合わせた時間が表示されます。

コマンド例

実行結果

協定世界時はUTCとの略称で記述され、UTCはCoordinated Universal Timeの略になります。また、歴史的な理由からグリニッジ標準時(Greenwich Mean Time,GMT)とも呼ばれます。

参考

GNU coreutils Manual