DATE(1)

名称
date - 日付の表示、設定

書式
date [-nu] [-r seconds] [+format] [[[[[cc]yy]mm]dd]hh]mm[.ss]

解説
date は、引数なしで実行すると、現在の日付と時刻を表示します。 引数を与えると、ユーザが定義したフォーマットに従って日付や時刻の表示を 行ったり、日時の設定を行います。 なお、日付と時刻をセットできるのはスーパーユーザーだけです。

オプションは以下のものがあります:

-n  複数のマシンで時計をあわせる timed(8) ユーティリティを使用していた場合、 date を実行すると、デフォルトではそのグループのすべてのマシンの時間が変更されます。 しかし、 -n オプションを指定すれば、自分のマシン以外のマシンの時間の変更を行わないように なります。

-r  エポック (1970 年 1 月 1 日) から seconds 秒経過した日時を表示します。

-u  UTC (世界協定時) の日付を表示、設定します。

プラス (``+'') で始まるオペランドは、日付と時間の表示方法を指定する フォーマット文字列です。フォーマット文字列には、 strftime(3) で記述されているような変換文字列と、任意のテキストを含むことができます。 フォーマット文字列で指定した文字の後に、常に <改行> が出力されます。 date のデフォルトの表示形式は、

    ``%a %b %e %H:%M:%S %Z %Y''

としたものと同じです。

もし、オペランドに ``+'' 記号で始まる文字列がなければ、それはシステムに 日時を設定するための値と解釈されます。日時を設定するための正式な 表現は以下のとおりです:

cc  西暦の最初の 10 進 2 桁です (世紀)。
yy  西暦の 2 番目の 10 進 2 桁です。 “yy” が指定されていて “cc” が指定されていない状態では、 “yy” の値が 69 から 99 までの間の場合は “cc” の値は 19 になり、それ以外では 20 になります。
mm  月です。1 から 12 までの数字です。
dd  日です。1 から 31 までの数字です。
hh  時間です。0 から 23 までの数字です。
mm  分です。0 から 59 までの数字です。
.ss 秒です。0 から 61 までの数字です。

分の指定以外は全てオプションです。

夏時間や標準時、閏秒、閏年の時間の変更は自動的に行われます。

使用例
以下のコマンド:

    date ``+DATE: %m/%d/%y%nTIME: %H:%M:%S''

は、下のような表示を行います。

    DATE: 11/21/87
    TIME: 13:36:16

以下のコマンド:

    date 8506131627

は、 “1985年6月13日午後4時27分” に日時を設定します。

以下のコマンド:

    date 1432

は、日付を修正することなく、時間だけを 午後2時32分 に設定します。

環境変数
以下の環境変数は date の動作に影響を与えます:

TZ  日時を表示する際に用いられるタイムゾーンを設定します。 詳しいことは、 environ(7) を参照してください。

関連ファイル
/var/log/wtmp
    日付のリセットおよび時間変更の記録がこのファイルに残されます。
/var/log/messages
    日付を変更したユーザの記録がこのファイルに残されます。

関連項目
gettimeofday(2), strftime(3), utmp(5), timed(8) TSP: The Time Synchronization Protocol for UNIX 4.3BSD, R. Gusella, S. Zatti.

診断
成功した場合は 0 を、日時を設定できなかった場合は 1 を、 ローカルマシンのセットはできたが、グループのマシン全体のセットに失敗した場合は 2 を返します。

多数のマシンの時計を timed(8) であわせている場合に、時間の更新に数秒かかることがあります。このとき date は、 ‘Network time being set’ と表示します。 date と timed との間で通信に失敗した場合は、 ‘Communication error with timed’ が表示されます。

規格
date ユーティリティは p1003.2 互換のつもりです。