date

Section: User Commands (1)
Updated: 18 June 2002
Index JM Home Page
 

名前

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
秒 (省略可)

指定された引数が `+' で始まる場合には、 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..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') が後置される。
auto
時刻を表示しない。
hours
その日の時刻を表示する。
minutes
時・分を表示する。
seconds
時・分・秒を表示する。
-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> が行っています。


関連キーワード

date, 日付, 時刻, 表示, フィールド, datestr, file, 出力, 文字, 標準 

Index

名前
書式
説明
時刻フィールド
日付フィールド
文字フィールド
文字埋め (padding)
オプション
注意

This document was created by man2html, using the manual pages.
Time: 03:54:29 GMT, May 19, 2022