戻る
gnuのsh-utils付属のdateコマンドのマニュアル。
================================
名前
date - システムの日付と時刻を表示・設定する
書式
date [-uR] [-d datestr] [-f datefile] [-r file] [-s dat-
estr] [-I [timespec]] [--date=datestr] [--file=datefile]
[--iso-8601[=timespec]] [--reference=file] [--set=datestr]
[--rfc-822] [--universal] [--utc] [+format] [MMD-
Dhhmm[[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 秒 (省略可)
指定された引数が `+' で始まる場合には、 date は現在の時 刻
と日付を表示する (あるいは --date オプションで指定された時
刻と日付を指定する)。表示形式はこの引数によって制御さ れ、
引 数の書式は strftime(3) 関数にわたす文字列の書式と同じで
ある。 `%' で始まるフィールドを除き、 format 文字列中の 文
字はそのまま変更されずに表示される。
時刻フィールド
%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..61)
%T 時刻、24 時間 (hh:mm:ss)
%X ロケールによる時刻の表現 (%H:%M:%S)
%Z タイムゾーン (例 EDT)、あるいはタイムゾーンが決定で
きないならば無し
日付フィールド
%a ロケールの省略形の曜日名 (Sun..Sat)
%A ロケールの完全表記の曜日名、可変長 (Sunday..Satur-
day)
%b ロケールの省略形の月名 (Jan..Dec)
%B ロ ケールの完全表記の月名、可変長 (January..Decem-
ber)
%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 年の最後の二つの数字 (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 を一行ずつパー ス し
て、結果の時刻と日付を表示する。 datefile が `-' の
場合は標準入力が用いられる。これは、たくさんの日 付
を 処理しなければならない場合に便利である。 date の
実行ファイルを何回も起動するオーバーヘッドは無視 で
きないからである。
-r file, --reference=file
表示する時刻と日付を file の最終修正時刻にする。
-s datestr, --set datestr
時刻と日付を datestr に設定する。上述の -d を見よ。
成功すると 0 を返し、失敗すると 0 以外を返す。
-u, --universal, --utc
時刻と日付を地方時 (壁時計の時刻) ではなく協定世 界
時 (グリニッジ平均時) によって表示・設定する。
-I [timespec], --iso-8601[=timespec]
日 付 を ISO 8601 で指定されている書式 `%Y-%m-%d'
で、時刻を timespec で指定されている形式で表示す る
( 後 者のデフォルトは auto)。時刻部分の表示には `T'
が前置され、`%z' (--utc が指定されている場 合 に は
`%Z') が後置される。
auto 時刻を表示しない。
hours その日の時刻を表示する。
minutes
時・分を表示する。
seconds
時・分・秒を表示する。
-R, --rfc-822
時 刻 と 日付を RFC-822 で指定された書式である `%a,
%_d %b %Y %H:%M:%S %z' で表示する。 --utc が同時 に
指定されると、 `%z' の代わりに `GMT' を用いる。
--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 が行っています。