date コマンド

目的

日付または時刻を表示または設定します。

構文

root ユーザーとして、日付と時刻を設定する

/usr/bin/date [-n] [-u] [日付] [+FieldDescriptor ...] 

日付と時刻を表示する

/usr/bin/date [-u] [+FieldDescriptor ...]

root ユーザーとして、時刻 (秒単位) を調整する。

/usr/bin/date [-a [+ | -] sss [.fff ]

説明

重要: システムが複数のユーザーで稼働している場合は、日付を変更しないでください。

date コマンドは、フラグを付けずに呼び出されるか、+ (正符号) で始まる フラグ・リストを付けて呼び出されると、現在の日時と時刻を標準出力に書き出します。 それ以外の場合は、現在の日付を設定します。 日付と時刻を変更できるのは root ユーザーだけです。 date コマンドは、認識できないフラグまたは入力に対しては、使用方法のメッセージを出力します。

Date パラメーターによって日付を設定する場合、次のフォーマットを使用できます。

  • mmddHHMM[YYyy]です
  • MMddhhmm[yy]

Date パラメーターの変数は次のように定義されます。

項目 説明
mm 月を指定します。
dd 日付を指定します。
hh 24 時間クロックを使用して、1 日のうちの時間を指定します。
MM 分を指定します。
YY 西暦の最初の 2 桁を指定します。
注: 年の最初の2桁を指定しない場合、70~99の範囲の値は、1970~1999を含む20世紀を指す。 同様に、00 から 37 までの範囲の値は、21 世紀の 2000 年から 2037 年までの年を指します。
yy 西暦の最後の 2 桁を指定します。
注: date コマンドは、4 桁の年を入力として受け入れます。 例えば、 4 桁の年号が指定された場合、date コマンドは その年号を YYyy に設定しようとし、その値が範囲外 (1970 より小さい、または 2105 より大きい) である場合は失敗します。 2038 から 2105 の範囲の年号の場合は、yyyy 形式で年号を指定してください。

年が指定されない場合は、現在の年がデフォルト値として 使用されます。 システムは協定世界時 (CUT) で作動します。

date コマンドの後に + (正符号) とフィールド・ディスクリプターを付けると、 コマンドの出力を制御できます。 各フィールド・ディスクリプターの前には % (パーセント記号) を付けなければなりません。 システムは、フィールド・ディスクリプターを指定した値と置換します。 リテラルの % は、%% (パーセント記号 2 つ) で入力してください。 date コマンドは、その他の文字を変更せずに出力にコピーします。 date コマンドは、文字列を常に改行文字で終わらせます。

フラグ

項目 説明
-a [ + | - ]sss[.fff ] sss.fff 秒により、遅延して時刻を調整します (fff は秒の少数部分を表します)。 この調整は、 正または負のどちらにも行うことができます。 システムのクロックは、指定された秒数によりドリフトするまでスピードアップまたはスローダウンします。
-n ローカル・エリア・ネットワーク内の、クロックが同期化されている全システムの時刻をグローバルに設定しません。
-u 時刻を万国標準時 (CUT) で表示または設定します。

フィールド記述子

項目 説明
%a ロケールの曜日名の省略型を表示します。
%A ロケールの曜日の完全名を表示します。
%b ロケールの月名の省略型を表示します。
%B ロケールの月の完全名を表示します。
%c ロケールの該当する日時表記を表示します (デフォルト)。
%C 4 桁の年の最初の 2 桁を 10 進数で表示します (00-99)。 年は 100 で除算されて、小数点以下は切り捨てられます。
%d 日付を 10 進数で表示します (01 から 31)。 1 桁の日付の場合は、10 の位の空間を 0 で埋めて 2 桁のフィールドとします。
%D %m/%d/%y に相当するフォーマットで日付を表示します。
%e 日付を 10 進数で表示します (1 から 31)。 1 桁の月の場合は、10 の位の空間をスペースで埋めて 2 桁のフィールドとします。
%h ロケールの月名の省略型を表示します (%b の同義語です)。
%H 時 (24 時間制) を 10 進数で表示します (00 から 23)。
%I 時 (12 時間制) を 10 進数で表示します (01 から 12)。
%j 日付を 10 進数で表示します (001 から 366)。
%k 24 時間クロックの時間を、右寄せし、スペースで充てんした数値 (0 から 23) で表示します。
%m 月を 10 進数で表示します (01 から 12)。
%M 分数を 10 進法で表示します (00 から 59)。
%n 改行文字を挿入します。
%p ロケールの AM か PM に相当するものを表示します。
%r 12 時間制の時刻 (01 から 12) を、AM/PM 表記で表示します。POSIX ロケールでは、 それは %I:%M:%S %p に相当します。
%S 秒数を 10 進数で表示します (00 から 59)。
%s 協定世界時 (CUT) で 1970 年 1 月 1 日からの秒数を表示します。
%t <タブ> 文字を挿入します。
%T 24 時間制の時間 (00 から 23) を HH:MM:SS に相当するフォーマットで表示します。
%u 曜日を 1 から 7 までの範囲の 10 進数として表示します (日曜日 = 7)。 %w フィールド・ディスクリプターのセクションを参照してください。
%U 年の始めから数えて何週目かということを 10 進数 (00 から 53 まで) で表示します (日曜日を週の始めの曜日とします)。 新年の最初の日曜日より前にあるすべての日は、週 0 と見なされます。
%V 年の始めから何週目かを 01 から 53 までの範囲の 10 進数で表示します (月曜日が週の始めの日として使用されます)。 新年の 1 月 1 日を含む週が 4 日以上であれば、その週が週 01 と見なされます。 そうでない場合、その週は前年の週 53 になります。
%w 曜日を 0 から 6 までの範囲の 10 進数として表示します (日曜日 = 0)。 %u フィールド・ディスクリプターのセクションを参照してください。
%W 月曜日を週の始めの曜日として、年の始めから何週目かを 10 進数 (00 から 53) で表示します。
%x ロケールの適切なフォーマットで日付を表示します。
%X ロケールの適切な時刻表示方法を表示します。
%y 西暦の下 2 桁を表示します (00 から 99)。
%Y 4 桁の西暦年を 10 進数で表示します。
%Z これは、タイム・ゾーン名とタイム・ゾーン・オフセットのいずれかを適宜表示します。 タイム・ゾーンが判別されない場合、文字は表示されません。
%% % (パーセント記号) を表示します。

フィールド・ディスクリプターの修飾

%E および %O フィールド記述子は、「 Files Reference」の「ロケール定義ソース・ファイル・フォーマット」の「 LC_TIME カテゴリー 」で説明されているように、別のフォーマットまたは仕様を示すように変更することができます。 対応するキーワード (「 era」、「 era_year」、「 era_d_fmt」、および「 alt_digits 」キーワードを参照) が指定されていないか、現行ロケールでサポートされていない場合は、未変更のフィールド記述子値が使用されます。

項目 説明
%Ec ロケールの適切な代替表示方法で日付と時刻を表示します。
%EC 基本年 (または他の期間) の名前をロケールの代替表示方法で表示します。
%Ex ロケールの代替表示方法で日付を表示します。
%EX ロケールの代替表示方法で時刻を表示します。
%Ey %EC フィールド・ディスクリプター (年のみ) からのオフセットをロケールの代替表示方法で示します。
%EY 完全な代替表示方法で年を表示します。
%Od ロケールの代替数値記号を使用して日付を表示します。
%Oe ロケールの代替数値記号を使用して日付を表示します。
%OH ロケールの代替数値記号を使用して時刻 (24 時間制) を表示します。
%OI ロケールの代替数値記号を使用して時刻 (12 時間制) を表示します。
項目 説明
%Om ロケールの代替数値記号を使用して月を表示します。
%OM ロケールの代替数値記号を使用して分数を表示します。
%OS ロケールの代替数値記号を使用して秒数を表示します。
%Ou ロケールの代替表示方法を使用して曜日を数字で表示します (月曜 =1)。
%OU ロケールの代替数値記号を使用して年の何週目であるかを表示します。 日曜を週の最初の曜日と見なします。
%OV ロケールの代替数値記号を使用して年の何週目であるかを表示します。 月曜を週の最初の曜日と見なします。
%Ow ロケールの代替表示方法を使用して曜日を数字で表示します (日曜 =0)。
%OW ロケールの代替数値記号を使用して年の何週目であるかを表示します。 月曜を週の最初の曜日と見なします。
%Oy 代替表示方法で年 (%C からのオフセット) を表示します。

終了状況

このコマンドは、以下の終了値を戻します。

項目 説明
0 日付が正常に書き込まれました。
>0 エラーが発生しました。

セキュリティー

RBAC ユーザーへの注意: このコマンドは特権命令を実行できます。 特権命令を実行できるのは特権ユーザーのみです。 権限と特権の詳細については、セキュリティ特権コマンドデータベースを参照してください。 このコマンドに関連する特権と権限のリストについては、'lssecattrコマンドまたは'getcmdattrサブコマンドを参照のこと。

  1. 現在の日時を表示するには、次のように入力します。
    date
  2. 日付と時刻を設定するには、次のように入力します。
    date 0217142590
     
    CST をタイムゾーンとして使用するシステムでは、このコマンドにより、日付と時刻が Sat Feb 17 14:25:00 CST 1990 に設定されます。
    注: 日時を変更するには、root 権限が必要です。
  3. 日付と時刻を指定したフォーマットで表示するには、次のように入力します。
    date +"%r %a %d %h %y (Julian Date: %j)"
    このコマンドにより、例 2 に示した日付は次のように表示されます。
    02:25:03 PM Fri 17 Feb 90 (Julian Date: 048)

環境変数

次の環境変数が date コマンドの実行に影響します。

項目 説明
言語 LC_ALL とそれに対応する環境変数 (LC_ で始まる) の両方がロケールを指定していないときは、使用するロケールを決めます。
LC_ALL (LC_ALL) LANG または LC_ で始まる環境変数を 設定することによって指定されたロケール・カテゴリー値を指定変更するのに使用するロケールを 決定します。
LC_CTYPE テキスト・データのバイト・シーケンスを文字として解釈するのに使用するロケールを決めます (例えば、引数内の単一バイト文字対複数バイト文字)。
LC_MESSAGES メッセージを書き出す際の言語を決めます。
LC_TIME date コマンドによって書き込まれる日付および時刻の文字列の内容を決定します。
「NLSPATH」 LC_MESSAGES の処理のためにメッセージ・カタログのロケーションを決定します。
TZ -u フラグが指定されていない場合に、時刻と日付が書き込まれるタイムゾーンを指定します。 TZ 変数が設定されていないで、また -u フラグも指定されない場合、未指定システムのデフォルト・タイムゾーンが使われます。