構文
date [-u]
date [-u] +format
date [-u] [mmddhhmm[[cc]yy]]
date [-a [-]sss [. fff]]
説明
date コマンドは、 HP-UX システムクロックの現在の日付と時刻を表示、または設定します。
HP-UX システムは、協定世界時 (UTC、グリニッジ標準時と同じ) で動作するので、 date はユーザーの TZ 環境変数を基に、現地の標準時間または夏時間を UTC に、
またその逆に自動的に変換します。以下の 『多言語化対応』 の「環境変数」を参照してください。
オプション
date コマンドにはオプションが 1 つあります。
| -u | | 指定された場合、値の入出力は、 現地時間ではなく協定世界時 (UTC) で行われます。
これは、グリニッジ標準時 (GMT) と機能的に同じです。 |
| -a [-]sss[.fff] | | システムクロックを sss.fff 秒だけ徐々に変動させます ( fff は、1 秒未満の値を表します)。
システムクロックは、指定した秒数だけ変動するまで徐々に 進み (正数の場合)、あるいは遅れ (負数の場合) ます。 |
フォーマット
date コマンドは、日付と時刻の表示形式が 2 種類あり、
設定形式が 1 種類あります。
| date [-u] | | 現在の日付と時刻を表示します。 出力は、デフォルトの C 言語以外のすべての言語で %c フォーマット指令を指定した場合と同じです。
以下の 『フォーマット指令』 および 『例』 を参照してください。 |
| date [-u] +format |
| | | format で指定されたフォーマット指令に従って、 現在の日付と時刻を表示します。 format は、ゼロ以上のフォーマット指令および一般文字から成る文字列です。
ブランクを含む場合は、アポストロフィまたは引用符で囲まなければなりません。 以下の『フォーマット指令』 を参照してください。 一般文字はすべて、変更されずに出力文字列へコピーされます。 出力文字列は、必ず改行文字で終了します。 + が指定され、かつ format が省略された場合は、改行だけ出力されます。 |
| date [-u] [mmddhhmm[[cc]yy]] |
| | | HP-UX のシステムクロックを指定の日付と時刻に設定します。 このコマンドを発行するには、スーパーユーザー特権が必要です。 -u オプションを指定した場合、指定した日付と時刻は
グリニッジ標準時 (UTC) として解釈されます。 数値引き数は、次のように、2 桁ずつ左から右へ解釈されます。 | mm | | 月 [01-12] | | dd | | 日にち (月単位) [01-31] | | hh | | 時 (24 時間制) [00-23] | | mm | | 分 [00-59] | | cc | | 世紀から 1 を引いた数 [19-20] | | yy | | 年の最後の 2 桁 [70-99, 00-37 (1970-1999, 2000-2037)]。
省略された場合は、本年の値が使用されます。 |
過去の日付を設定しようとした場合、 date は警告を発行します。 do you really want to run time backwards?[yes/no] クロックに過去の日付を設定するには、 yes またはユーザーのロケールでこれに相当する語を入力します。
それ以外を入力すると、このコマンドが取り消されます。 date で日付を設定する場合は、変更前と変更後の日時の組が日付変更レコードとして /var/adm/wtmps ファイルに書き込まれます。 (UNIX 標準のみ、 standards(5) 参照。) 過去に日付が設定されている場合、警告は発行されません。 |
フォーマット指令
以下にフォーマット指令を示します。 ここでは、オプションのフィールド幅と精度の指定は除いてあります。
フォーマット指令は、指示された文字で置き換えられます。 以下にあげた指令以外のものを指定した場合、結果は未定です。
出力される数字、文字、およびワードは、 言語/ロケールの設定に依存します。以下の 『多言語化対応』 の 『環境変数」を参照してください。』
以下の例は、 date コマンドが、デフォルトの C 言語を使用して、
太平洋標準時の 1994 年 1 月 12 日水曜日午後 7:45:58 に実行されたと 仮定しています。
| %a | | 曜日の略称。 例: Wed |
| %A | | 曜日 (完全な表記)。 例: Wednesday |
| %b | | 月の略称。 例: Jan |
| %B | | 月 (完全な表記)。 例: January |
| %c | | 現在の日付と時刻の表示。 例: Wed Jan 12
19:45:58 1994 |
| %C | | 世紀 (年を 100 で除算し、整数に切り捨てた値) を表す 2 桁の 10 進数
[00-99]。 例: 19 |
| %d | | 日にち (月単位) を表す 2 桁の 10 進数 [01-31]。
例: 12 |
| %e | | 日にち (月単位) を表す 2 桁の 10 進数 (必要に応じて先行スペース文字が入ります)[" 1"- "31" ]。
例: 12 |
| %E | | 元号名と年の組み合わせ。 |
| %H | | 時 (24 時間制) を表す 2 桁の 10 進数 [00-23]。
例: 19 |
| %I | | 時 (12 時間制) を表す 2 桁の 10 進数 [01-12]。
例: 07 |
| %j | | 日にち (年単位) を表す 3 桁の 10 進数 [001-366]。
例: 012 |
| %m | | 月を表す 2 桁の 10 進数 [01-12]。
例: 01 |
| %M | | 分を表す 2 桁の 10 進数 [00-59]。
例: 45 |
| %n | | 改行文字。 |
| %N | | 元号名。 |
| %o | | 元号による年。 |
| %p | | AM または PM に相当する語。 例: PM |
| %R | | %H:%M の形式で表される時刻。 |
| %S | | 秒を表す 2 桁の 10 進数 (うるう秒も可) [00-61]。
例: 58 |
| %t | | タブ文字。 |
| %u | | 週日を表す 1 桁の 10 進数 [1-7 (月曜日-日曜日)]。
例: 3 |
| %U | | 1 年の週番号 (日曜を週の最初の日とする) を表す 2 桁の 10 進数 [00-53]。
1 年の最初の日曜日より前の日はすべて、第 00 週に属すると見なされます。
例: 02 |
| %V | | 1 年の週番号 (月曜を週の最初の日とする) を表す 2 桁の 10 進数 [01-53]。
1 月 1 日を含む週については、新年に属する日が 4 日以上ある場合 (すなわち、1 月 1 日が木曜日以前の場合)、その週は第 01 週となります。それ以外の場合
(すなわち、1 月 1 日が金曜日以降の場合)、その週は前年の最終の週となり、その次の週が第 01 週となります。
例: 02 |
| %w | | 週日を表す 1 桁の 10 進数 [0-6 (日曜日-土曜日)]。
例: 3 |
| %W | | 1 年の週番号 (月曜を週の最初の日とする) を表す 2 桁の 10 進数 [00-53]。
1 年の最初の月曜日より前の日はすべて、第 00 週に属すると見なされます。
例: 02 |
| %x | | 現在の日付の表示。 例: 01/12/94 |
| %X | | 現在の時刻の表示。 例: 19:45:58 |
| %y | | 年を表す、世紀の付かない 2 桁の 10 進数 [00-99]。
例: 93 |
| %Y | | 年を表す、世紀の付いた 4 桁の 10 進数 [1970-2037]。
例: 1994 |
| %Z | | 時間帯名 (時間帯が決定できない場合は、表示せず)。
例: PST |
| %% | | % 文字。 |
廃止された指令
以下の指令は、単に過去のシステムとの互換性を保持する目的で提供されているものです。
代りに、上記の指令を使用することをお勧めします。
| %D | | 通常の米国フォーマットの日付。 例: 01/12/94。
代りに、 %x または %m/%d/%y を使用してください。 |
| %F | | 月 (完全な表記)。 例: January。
代りに %B を使用してください。 |
| %h | | 月の略称。 例: Jan。 代りに %b を使用してください。 |
| %r | | 12 時間制米国フォーマットの時刻。 例: 07:45:58
PM。 代りに "%I:%M:%S %p" を使用してください。 |
| %T | | 24 時間制米国フォーマットの時刻。 例: 19:45:58。
代りに %X または %H:%M:%S を使用してください。 |
| %z | | 時間帯名 (時間帯が決定できない場合は、表示せず)。
例: PST。 代りに %Z を使用してください。 |
フォーマット指令の変更
フォーマット指令の中には、 LC_TIME 環境変数で指定された言語に特有のフォーマットまたは指定を表すために、 E および O 修飾文字によって修正可能なものがあります。
対応するキーワード (era、 era_year、 era_d_fmt、
および alt_digit を参照) が指定されていない場合、またはサポートされていない場合は、
フィールド記述子の値がそのまま変更なく使用されます。 次のコマンドは、
LC_ALL=language locale -ck era era_year era_d_fmt alt_digit
指定された language での各キーワードとそれらの値を表示します (locale(1) を参照)。
| %Ec | | 日付および時刻の代替表記 |
| %EC | | 基準年の代替表記 |
| %Ex | | 日付の代替表記 |
| %Ey | | 基準年 %EC (年単位のみ) からの年数の代替表記 |
| %EY | | 年の完全な代替表記 |
| %Od | | 日にち (月単位) の数字表記 |
| %Oe | | 日にち (月単位) の数字表記 (必要に応じて先行スペース文字が入ります) |
| %OH | | 時間 (24 時間制) の数字表記 |
| %OI | | 時間 (12 時間制) の数字表記 |
| %Om | | 月の数字表記 |
| %OM | | 分の数字表記 |
| %OS | | 秒の数字表記 |
| %OU | | 1 年の週番号 (日曜を週の最初の日とする) の数字表記 |
| %Ow | | 週日の数字表記 (日曜日 =0) |
| %OW | | 1 年の週番号 (月曜を週の最初の日とする) の数字表記 |
| %Oy | | 年 (世紀 %C からの年数) の代替表記 |
フィールド幅と精度
オプションのフィールド幅と精度指定を、 フォーマット指令の最初の % の直後に、以下の順番で指定することができます。
| [-|0]width | | 10 進数字の文字列 width は、 最小 フィールド幅を指定します。 変換結果は、この幅に右詰めまたは左詰めされます。
デフォルトは右詰めで、左にスペースのパディングが 埋められます。文字列の先頭が"- "の場合は、結果は左詰めされ、右にスペースのパディングが
埋められます。文字列の先頭が"0 "の場合は、結果は右詰めされ、左にゼロが埋められます。 |
| .prec | | 10 進数字の文字列 prec は、数値指令 d、 H、 I、 j、 m、 M、 o、 S、 U、 w、 W、 y、
および Y に対する数字の 最小 桁数を指定します。 指令の桁数が精度で指定した桁数よりも少ない場合は、
先行部分にゼロが埋められて拡張されます。 prec は、テキスト指令 a、 A、 b、 B、 c、 D、 E、 F、 h、 n、 N、 p、 r、 t、 T、 x、 X、 z、 Z、
および % で使用される 最大 文字数を指定します。 指令の文字数が精度で指定した文字数より多ければ、
右側の余分な文字が切り捨てられます。 |
フィールド幅または精度が指定されない場合、 d、 H、 I、 m、 M、 S、 U、 W、
または y 指令のデフォルトは .2、 j 指令のデフォルトは .3、 Y 指令のデフォルトは .4、 w 指令のデフォルトは .1 です。
多言語化対応
UNIX
標準環境についての情報は、 standards(5) を参照してください。
環境変数
LC_CTYPE は、 format 文字列をシングルバイト、 またはマルチバイトのいずれの文字で解釈するかを決定します。
LC_NUMERIC は、数値を構成するのに使われる文字を決定します。
それらの文字は出力中の数値を生成するための指令として使われます。
使用される文字は、 alt_digit (locale(1) および langinfo(5) の中の ALT_DIGIT を参照) で定義された文字です。
LC_TIME は、 date コマンドによって出力される日付と時刻の文字列の内容 (例: %a 指令によって生成される週日名) およびフォーマット (例: %X 指令によって生成される現在時刻の表記) を決定します。
LC_MESSAGES は、メッセージ
(日付と時刻の文字列以外) の表示に使用する言語を決定します。
LC_CTYPE, LC_NUMERIC, LC_TIME, または LC_MESSAGES が未設定または空文字列に設定されている場合、
未設定または空の各環境変数のデフォルトとして LANG の値が使用されます。
LANG が未設定または空文字列に設定されている場合は、
デフォルト値は C です (lang(5) を参照)。
インターナショナル変数に無効な値が設定されていると、 date はインターナショナル変数がすべて C に設定されているものとして動作します
(environ(5) を参照)。
TZ は、 UTC
でのシステム時刻とユーザーの現地時間帯での時刻との間の変換を決定します。 environ(5) および tztab(4) を参照してください。また TZ は、 date コマンドによって出力される日付と時刻の文字列の内容 (すなわち、 %z および %Z 指令によって生成される時間帯名) も決定します。
TZ が未設定または空文字列に設定されている場合、
デフォルト値は EST5EDT です。もし EST5EDT か TZ を時間帯調整テーブル tztab から読み取れなかった場合、 date は、 UTC での時間を返します。
サポートされるコードセット
シングル/マルチバイトの文字コードセットがサポートされています。
診断
以下のメッセージが表示されることがあります。
| bad conversion | | 日付/時刻指定に構文エラーがあります。 日付/時刻が有効な範囲内で正しく指定されているかどうかをチェックしてください。
|
| bad format character
- c |
| | | 文字 c は、有効なフォーマット指令、フィールド幅指定、 または精度指定ではありません。 |
| do you really want to run time backwards?[yes/no] |
| | | 指定した日付/時刻が、現在のクロック値より前の値です。 クロックに過去の値を設定するには、 yes (またはユーザーのロケールでこれに相当する語) を入力します。
それ以外を入力すると、このコマンドが取り消されます。 |
| no permission | | 日付を変更するには、スーパーユーザー特権が必要です。 |
例
各国語の日付
日付を表示します。この例では、 TZ 環境変数の値は PST8PDT で、
各言語環境変数は上記通りに設定されています。
date → Fri Aug 20 15:03:37 PDT 1993 ← 言語は C
date -u → Fri Aug 20 22:03:37 UTC 1993 ← 言語は C
date → Fri, Aug 20, 1993 03:03:37 PM ← 言語は american
date → Fri. 20 Aug, 1993 03:03:37 PM ← 言語は english
date → 20/08/1993 15.47.47 ← 言語は portuguese
日付の設定
日付を 10 月 8 日 12:45 a.m.に設定します。
フォーマットされた日付の表示
現在の日時を指定のフォーマットで表示します。 この例では、フォーマット中にブランクがあるため、引用符を使用しています。
date "+DATE: %m/%d/%y%nTIME: %H:%M:%S"
出力は次のようになります。
DATE: 10/08/87
TIME: 12:45:05
母国語変換を用いてフォーマットされた日付の表示
日付は上記の「日付の設定」の例で設定された値で、 LC_TIME は de_De.roman8 (German)
に設定されています。
date +'%-4.4h %2.1d %H:%M'
出力は次のようになります。
ここで、月のフィールドは左詰めの 4 文字長で表示され、 月名が 4 文字より短いとその右にスペースのパディングが入ります。
日のフィールドは 2 文字長で、先行のゼロ表示は抑制されます。
警告
以前の HP-UX フォーマット指令 A は、 ANSI
との互換性のため、 W に変更されました。
システムがマルチユーザーモードで動作中の場合は、 日付の変更をしないようにしてください。
これを行うと、ユーザーが実行予定のプログラムやプロセス、 また時刻に依存したプログラムやプロセスに混乱を生じることになります。
また、日付の変更をすると、 make や SCCS および cron のサブシステムが予想外の動作を起こすこともあります。
日付を過去の値に設定する場合は、その前に cron デーモンを終了させ、設定した後に再起動してください。
クロックを誤って設定した時点で、すでにデルタが作成されている場合は、
クロックの設定が誤っていた期間中にデルタが作成されたかどうか、 val (val(1) を参照) を使って SCCS ファイルをチェックする必要があります。
将来リリースされる製品では、以下のフォーマット指令が削除 される可能性があります。 %E、 %F、 %o、 %z
現在サポートされている最大の日付は、UTC の 2037 年 12 月 31 日 23:59:00 です。
著者
date は、AT&T および HP で開発されました。
参照
locale(1), stime(2), ctime(3C), strftime(3C), tztab(4), environ(5),
lang(5), langinfo(5), standards(5)
標準準拠
date: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2