名前
date - システムの日付と時刻を表示・設定する
書式
date [-uR] [-d datestr] [-f datefile] [-r file] [-s datestr] [-I [timespec]] [--date=datestr] [--file=datefile] [--iso-8601[=timespec]] [--reference=file] [--set=datestr] [--rfc-822] [--universal] [--utc] [+format] [MMDDhhmm[[CC]YY][.ss]]
date [--help] [--version]
説明
date は引数を指定しないと、現在の時刻と日付を表示する (表示形式は %a %b %e %H:%M:%S %Z %Y となる。以下を参照のこと)。
引数が指定され、かつその先頭が + で始まっておらず、 かつ実行者が適切な権限を持っていれば、 date はシステムの時計を引数で指定された時刻・日付に設定する。 --date および --set の両オプションは、このような引数と一緒に用いることはできない。 --universal オプションをこのような引数とともに用いると、 指定した時刻・日付が (地方時ではなく) 協定世界時のものになる。 引数には数字だけを用いることができ、それぞれ以下の意味を持つ:
MM | 月 |
DD | 日 (月内通算) |
hh | 時 |
mm | 分 |
CC | 年の最初の 2 桁 (省略可) |
YY | 年の最後の 2 桁 (省略可) |
ss | 秒 (省略可) |
時刻フィールド
%H | 時 (00..23) |
%I | 時 (01..12) |
%k | 時 (0..23) |
%l | 時 (1..12) |
%M | 分 (00..59) |
%p | AM あるいは PM のロケール |
%r | 時刻、12 時間 (hh:mm:ss [AP]M) |
%s | 1970-01-01 00:00:00 UTC からの秒数 (標準外の拡張) |
%S | 秒 (00..60) |
%T | 時刻、24 時間 (hh:mm:ss) |
%X | ロケールによる時刻の表現 (%H:%M:%S) |
%Z | タイムゾーン (例 EDT)、 あるいはタイムゾーンが決定できないならば無し |
日付フィールド
%a | ロケールの省略形の曜日名 (Sun..Sat) |
%A | ロケールの完全表記の曜日名、可変長 (Sunday..Saturday) |
%b | ロケールの省略形の月名 (Jan..Dec) |
%B | ロケールの完全表記の月名、可変長 (January..December) |
%c | ロケールの日付と時刻 (Sat Nov 04 12:02:33 EST 1989) |
%d | 月内通算日数 (01..31) |
%D | 日付 (mm/dd/yy) |
%h | %b と同じ |
%j | 年内通算日数 (001..366) |
%m | 月 (01..12) |
%U | 日曜日を週の最初の日とした年内通算週 (00..53) |
%w | 週のうちの曜日 (0..6) (0 が日曜日) |
%W | 月曜日を週の最初の日とした年内通算週 (00..53) |
%x | ロケールの日付表現 (mm/dd/yy) |
%y | 年の最後の 2 つの数字 (00..99) |
%Y | 年 (1970...) |
文字フィールド
%% | 文字 % |
%n | 改行 |
%t | 水平タブ |
文字埋め (padding)
デフォルトでは、 date は数値のフィールドを 0 で埋める。したがって、例えば 数値表示の月は常に 2 桁で出力される。 GNU は date の機能を拡張しており、以下の非標準の数値修正子を % と フィールドの間に置くことができる:
- | (ハイフン) フィールドを埋めない。 出力が人に読まれる場合には便利である。 |
_ | (アンダースコア) フィールドをスペースで埋める。 出力に決まった数の文字が必要だが、0 を使いたくない場合に便利である。 |
オプション
-d datestr, --date datestr | |||||||||||||
現在の時刻・日付の代わりに、 datestr で指定された時刻・日付を表示する。 datestr は普通のフォーマットならだいたいなんでも使うことができる。 月名、タイムゾーン、am や pm なども用いてよい。 | |||||||||||||
-f datefile, --file=datefile | |||||||||||||
-d とともに指定された datefile を 1 行ずつパースして、結果の時刻と日付を表示する。 datefile が - の場合は標準入力が用いられる。 これは、たくさんの日付を処理しなければならない場合に便利である。 date の実行ファイルを何回も起動するオーバーヘッドは無視できないからである。 | |||||||||||||
-r file, --reference=file | |||||||||||||
表示する時刻と日付を file の最終修正時刻にする。 | |||||||||||||
-s datestr, --set datestr | |||||||||||||
時刻と日付を datestr に設定する。上述の -d を見よ。成功すると 0 を返し、失敗すると 0 以外を返す。 | |||||||||||||
-u, --universal, --utc | |||||||||||||
タイムゾーンが地方時 (壁時計の時刻) ではなく UTC0 (協定世界時、これはグリニッジ平均時もしくは GMT として知られている) に 設定されたものとする。 | |||||||||||||
-I [timespec], --iso-8601[=timespec] | |||||||||||||
日付を ISO 8601 で指定されている書式 %Y-%m-%d で、
時刻を
timespec で指定されている形式で表示する (後者のデフォルトは
auto)。 時刻部分の表示には T が前置され、%z
(--utc が指定されている場合には %Z) が後置される。
| |||||||||||||
-R, --rfc-822 | |||||||||||||
時刻と日付を RFC-822 で指定された書式である %a, %_d %b %Y %H:%M:%S %z で表示する。 --utc が同時に指定されると、%z の代わりに GMT を用いる。 日付と月の名前は C ロケールに基づいて表示される。 | |||||||||||||
--help | 標準出力に使用方法のメッセージを出力して正常終了する。 | ||||||||||||
--version | |||||||||||||
標準出力にバージョン情報を出力して正常終了する。 | |||||||||||||
例
一昨日の日付を表示するには:
date --date '2 days ago' | |
3 ヶ月と 1 日後の日付を表示するには: | |
date --date '3 months 1 day' | |
今年のクリスマスが年の初めから何日目かを表示するには: | |
date --date '25 Dec' +%j | |
完全な月名と日付からなる書式で今日を表示するには: | |
date '+%B %d' | |
しかしこの結果はお望みのものではないかもしれない。 なぜなら月の最初の 9 日を表示させるとき、`%d' は 2 桁のフィールドの 最初を 0 で埋めるからである。例えば `date -d 1-may '+%B %d'' の結果は `May 01' となる。 | |
同じ日を、1 桁の日付の前に 0 を置かないように表示するには、 標準にはない `-' 修正子を用いて 0 埋めを行わないようにすればよい。 | |
date -d 1-may '+%B %-d' | |
注意
プログラムのバグについては bug-sh-utils@gnu.org に報告してください。 ページの更新は Ragnar Hojland Espinosa <ragnar@ragnar-hojland.com> が行っています。