dateコマンド(システムの日付と時刻を表示する)
- 〈このページの構成〉
形式
date[-u][-d 日時情報指定文字列 | -r 経過秒][+書式]
機能
システムの日付と時刻を表示します。
引数
- --date=日時情報指定文字列
-
表示する日時を日時情報指定文字列で指定します。複数指定した場合は最後の指定が有効になります。指定できる日時情報指定文字列については,「-dオプションで指定できる日時情報指定文字列」を参照してください。
- -r 経過秒
-
エポック(UTCの1970年1月1日00:00:00)から,経過秒に指定した時間が経過した日時を表示します。経過秒に指定できる値は,-1009875600〜2147440447です。範囲外の値を指定した場合,出力する内容は保証できません。
- +書式
-
日付と時刻の表示形式を書式指定コードで指定します。書式指定コードはOSのAPIであるstrftime関数の書式指定コードが指定できます。指定できる書式指定コードについては,「指定できる書式指定コード」を参照してください。
この引数を指定していない場合は,日付と時刻の表示形式は「%Y/%m/%d %A %H:%M:%S %Z」になります。
指定できる書式指定コード
「+」で始まる引数には,OSのAPIであるstrftime関数の書式指定コードが指定できます。このOSのAPIであるstrftime関数で指定できる書式指定コードは,OSによって異なります。各OSで指定できる書式指定コードについては,各OSのstrftime関数についてのドキュメントを参照してください。
各OSで共通して使用できる代表的な書式指定コードを次の表に示します。
書式指定コード |
意味 |
---|---|
%a |
曜日の省略名 |
%A |
曜日の正式名 |
%b |
月の省略名 |
%B |
月の正式名 |
%c |
ロケールに対応する日付・時刻の表示 |
%d |
10進数で表す月の日付(01〜31) |
%H |
24時間表記で表す時間(00〜23) |
%I |
12時間表記で表す時間(01〜12) |
%j |
10進数で表す年の初めからの日数(001〜366) |
%m |
10進数で表す月(01〜12) |
%M |
10進数で表す分(00〜59) |
%p |
現在のロケールの午前/午後 |
%S |
10進数で表す秒。表示される値の範囲は,うるう秒への対応の違いから,OSによって異なる |
%U |
10進数で表す週の通し番号(00〜53)。その年の最初の日曜日を週の最初の日とする |
%w |
10進数で表す曜日(0〜6,日曜日が0) |
%W |
10進数で表す週の通し番号(00〜53)。その年の最初の月曜日を週の最初の日とする |
%x |
現在のロケールの日付の表示 |
%X |
現在のロケールの時刻の表示 |
%y |
10進数で表す西暦の下2桁(00〜99) |
%Y |
10進数で表す4桁の西暦 |
%Z |
タイムゾーン名。タイムゾーンが不明な場合は表示しない |
%% |
%(パーセント)記号 |
-dオプションで指定できる日時情報指定文字列
日時情報指定文字列には,dateコマンドで表示したい日時を次のように指定します。
-
絶対日時だけで指定
指定した日時を表示します。
-
相対日時だけで指定
現在の日時から移動した日時を表示します。
-
絶対日時と相対日時を組み合わせて指定
絶対日時で指定した日時から,相対日時で指定した分だけ移動した日時を表示します。
日時情報指定文字列の要素は大文字でも小文字でも指定できます。UTCの1970年1月1日0時0分0秒より小さい値,または2038年1月19日3時14分7秒より大きい値を指定した場合,エラーメッセージ「date: Invalid date: 指定値」を出力し,エラー終了します。ただし,AIXの場合,ローカルのタイムゾーンの2038年1月19日3時14分7秒より大きい値を指定すると,エラーメッセージ「date: Invalid date: 指定値」を出力し,エラー終了します。また,日時情報指定文字列として空文字を指定した場合,現在の日付の0時0分0秒を表示します。
日時情報指定文字列で指定できる要素と構文を次に示します。
-
絶対日時の指定
絶対日時での日時情報指定文字列の要素を次の表に示します。
表8‒7 日時情報指定文字列(絶対日時の指定)の要素 種別
指定できる要素※
詳細
年
10進数で表す4桁の西暦 (YYYY)
1970から2038まで指定できます。
10進数で表す西暦の下2桁 (YY)
00から99まで指定できます。
69から99までは1900年代と仮定され,00から68までは2000年代と仮定されます。
月
月の名称(MONTH)
次の値が指定できます。
-
January,Jan:1月
-
February,Feb:2月
-
March,Mar:3月
-
April,Apr:4月
-
May:5月
-
June,Jun:6月
-
July,Jul:7月
-
August,Aug:8月
-
September,Sept,Sep:9月
-
October,Oct:10月
-
November,Nov:11月
-
December,Dec:12月
10進数で表す月(MM)
01から12まで指定できます。
日
10進数で表す月の日付(DD)
01から31まで指定できます。
時
24時間表記で表す時間(hh)
00から23まで指定できます。
12時間表記で表す時間(hh)
01から12まで指定できます。
分
10進数で表す分(mm)
00から59まで指定できます。
秒
10進数で表す秒(ss)
00から59まで指定できます。
午前・午後
午前・午後(am | a.m. | pm | p.m.)
次の値を時間の後ろに指定できます。
-
am,a.m.:午前
-
pm,p.m.:午後
タイムゾーン
タイムゾーン名(ST)
次の値が指定できます。
-
UTC,UT:世界協定時
-
GMT:グリニッジ標準時(UTC + 0時間)
-
WET:西ヨーロッパ時間(UTC + 0時間)
-
AST:大西洋標準時(UTC - 4時間)
-
EST:東部標準時(UTC - 5時間)
-
CST:中部標準時(UTC - 6時間)
-
MST:山岳部標準時(UTC - 7時間)
-
PST:太平洋標準時(UTC - 8時間)
-
HST:ハワイ標準時(UTC - 10時間)
-
WAT:西アフリカ時間(UTC + 1時間)
-
CET:中央ヨーロッパ時間(UTC + 1時間)
-
MET:中央ヨーロッパ時間(UTC + 1時間)
-
CAT:中央アフリカ時間(UTC + 2時間)
-
EET:東ヨーロッパ時間(UTC + 2時間)
-
JST:日本標準時(UTC + 9時間)
-
GST:グアム標準時(UTC + 10時間)
-
NZST:ニュージーランド標準時(UTC + 12時間)
ミリタリータイムゾーン(ST)
次の値が指定できます。
-
A:UTC - 1時間
-
B:UTC - 2時間
-
C:UTC - 3時間
-
D:UTC - 4時間
-
E:UTC - 5時間
-
F:UTC - 6時間
-
G:UTC - 7時間
-
H:UTC - 8時間
-
I:UTC - 9時間
-
K:UTC - 10時間
-
L:UTC - 11時間
-
M:UTC - 12時間
-
N:UTC + 1時間
-
O:UTC + 2時間
-
P:UTC + 3時間
-
Q:UTC + 4時間
-
R:UTC + 5時間
-
S:UTC + 6時間
-
T:UTC + 7時間
-
U:UTC + 8時間
-
V:UTC + 9時間
-
W:UTC + 10時間
-
X:UTC + 11時間
-
Y:UTC + 12時間
-
Z:UTC
UTCからの時間指定(+hhmm | -hhmm | +hh:mm | -hh:mm)
UTCからの時間を+hhmm,-hhmm,+hh:mmまたは-hh:mmで指定できます。mmおよび:mmは省略することができます。
タイムゾーン(夏時間)
タイムゾーン(夏時間)(DT)
次の値が指定できます。
-
BST:英国夏時間(GMT + 1時間)
-
ADT:大西洋夏時間(AST + 1時間)
-
EDT:東部夏時間(EST + 1時間)
-
CDT:中部夏時間(CST + 1時間)
-
MDT:山岳部夏時間(MST + 1時間)
-
PDT:太平洋夏時間(PST + 1時間)
-
MEST:中央ヨーロッパ夏時間(MET + 1時間)
-
NZDT:ニュージーランド夏時間(NZST + 1時間)
デイライトセービングタイム
デイライトセービングタイム(DST)
デイライトセービングタイムとしてDSTを指定できます。タイムゾーンと同時に指定することで,指定したタイムゾーンの標準時刻を,指定された日時やタイムゾーンに関係なく,常に1時間進めます。タイムゾーンの指定なしでDSTを指定することはできません。
絶対日時での日時情報指定文字列の構文を次の表に示します。
表8‒8 日時情報指定文字列(絶対日時の指定)の構文 種別※
構文
詳細
日付の指定
[YY]YYMMDD
スペースなしで,年・月・日の順番で定義します。年の最初の2桁は省略できます。
[YYYY/]MM/DD
「/」区切りで,年・月・日の順番で定義します。年を省略した場合,現在の年が仮定されます。
MM/DD[/[YY]YY]
「/」区切りで,月・日・年の順番で定義します。年を省略した場合,現在の年が仮定されます。年の最初の2桁は省略できます。
[YY]YY-MM-DD
「-」区切りで,年・月・日の順番で定義します。年の最初の2桁は省略できます。
DD MONTH [[YY]YY]
スペース区切りで,日・月の正式名(または月の省略名)・年の順番で定義します。年を省略した場合,現在の年が仮定されます。年の最初の2桁は省略できます。
MONTH DD [,[YY]YY]
月の正式名(または月の省略名)・日・年の順番で指定します。月の正式名(または月の省略名)と日をスペース区切りで,日と年を「,」区切りで定義できます。年を省略した場合,現在の年が仮定されます。年の最初の2桁は省略できます。
DD[-]MONTH[[-][YY]YY]
「-」区切り,またはスペースなしで,日・月の正式名(または月の省略名)・年の順番で定義します。年を省略した場合,現在の年が仮定されます。年の最初の2桁は省略できます。
MONTH-DD-[YY]YY
「-」区切りで,月の正式名(または月の省略名)・日・年の順番で定義します。年の最初の2桁は省略できます。
MONTH DD [[YY]YY]
スペース区切りで,月の正式名(または月の省略名)・日・年の順番で定義します。年を省略した場合,現在の年が仮定されます。年の最初の2桁は省略できます。
時間の指定
hh[mm]
hh [am | a.m. | pm | p.m.]
スペースなしで,時・分の順番で定義します。
分の定義は省略できます。
時だけの定義のとき,スペース区切りでam(a.m.),pm(p.m.)を定義できます。
am(a.m.),pm(p.m.)を定義する場合,時の定義は12時間表記にしてください。
hh:mm[:ss] [am | a.m. | pm | p.m.]
「:」区切りで,時・分・秒の順番で定義します。
秒の定義は省略できます。
時・分・秒の定義の後ろに,スペース区切りでam(a.m.),pm(p.m.)を定義できます。
am(a.m.),pm(p.m.)を定義する場合,時・分・秒の定義は12:59:59以内としてください。
hh:mm[:ss] [+hh[mm] | -hh[mm] | +hh[:mm] | -hh[:mm]]
「:」区切りで,時・分・秒の順番で定義します。
秒の定義は省略できます。
時・分・秒の定義のあとに,スペース区切りで+hhmm,-hhmm,+hh:mmまたは-hh:mmを定義できます。
タイムゾーン
ST [DST]
ST [+hh[mm] | -hh[mm] | +hh[:mm] | -hh[:mm]]
タイムゾーンを指定します。タイムゾーンの後ろにスペース区切りで,DST,+hhmm,-hhmm,+hh:mmまたは-hh:mmを定義できます。
DT
タイムゾーン(夏時間)を定義します。タイムゾーン(夏時間)と共に,DST,+hhmm,-hhmm,+hh:mmまたは-hh:mmを定義することはできません。
-
-
相対日時の指定
相対日時での日時情報指定文字列の要素を次の表に示します。
表8‒9 日時情報指定文字列(相対日時の指定)の要素 指定できる要素※
詳細
年・月の移動(DATE)
次の値を指定します。
-
year,years:年の移動
-
month,months:月の移動
値の前に数値(NUM)を指定できます。数値(NUM)を省略した場合は1が仮定されます。
日の移動(DATE)
次の値を指定します。
-
fortnight,fortnights:2週間(14日)の移動
-
week,weeks:1週間(7日)の移動
-
day,days:日の移動
-
tomorrow:明日(1日後)
-
yesterday:昨日(1日前)
-
today:今日(0日)
-
now:現在(0日)
値の前に数値(NUM)を指定できます。数値(NUM)を省略した場合は1が仮定されます。
時・分の移動(DATE)
次の値を指定します。
-
hour,hours:時間の移動
-
minute,min,minutes:分の移動
値の前に数値(NUM)を指定できます。数値(NUM)を省略した場合は1が仮定されます。
秒の移動(DATE)
次の値を指定します。
-
second,sec,seconds:秒の移動
値の前に数値(NUM)を指定できます。数値(NUM)を省略した場合は1が仮定されます。
曜日の移動(DAY)
次の値を指定します。
-
Monday,Mon:月曜
-
Tuesday,Tue,Tues:火曜
-
Wednesday,Wed,Wednes:水曜
-
Thursday,Thu,Thur,Thurs:木曜
-
Friday,Fri:金曜
-
Saturday,Sat:土曜
-
Sunday,Sun:日曜
値の前に数値(NUM)を指定し,NUM回目の曜日を指定できます。数値(NUM)を省略した場合は1が仮定されます。1または数値(NUM)の指定がない場合,次に訪れる曜日を意味します。符号(+|-)または前後指定(ago)を指定することはできません。
数値指定(文字列)(NUM)
次の値を指定します。
-
last:-1
-
this:0
-
next:1
-
first:1
-
third:3
-
fourth:4
-
fifth:5
-
sixth:6
-
seventh:7
-
eighth:8
-
ninth:9
-
tenth:10
-
eleventh:11
-
twelfth:12
値の前に数値(NUM)は指定できません。
数値指定(数字)(NUM)
0から2147483647まで指定できます。
符号(+|-)
次の値を数値指定(数字)の前に指定できます。
-
+:正
-
- :負
符号の後ろに数値の指定がない場合,符号の指定は無視します。
前後指定(ago)
次の値を指定します。
-
ago:前の「-」
agoの直前に指定された日時情報指定文字列の正負を逆(正なら負,負なら正)にします。
相対日時での日時情報指定文字列の構文を次の表に示します。「日時の移動」と「曜日の移動」は組み合わせて定義できます。
表8‒10 日時情報指定文字列(相対日時の指定)の構文 種別
構文
詳細
日時の移動
[[+ | -]NUM] DATE [ago]
現在の日時,または日時情報指定文字列(日時の指定)で指定した日時からの移動分を指定します。
スペース区切りで複数指定することもできます。
組み合わせ可能な要素については表「日時情報指定文字列(相対日時の指定)の要素」を参照してください。
曜日の移動
[NUM] DAY
DAY[,]
曜日を指定します。複数指定することはできません。
また,曜日の前に数値(NUM)を指定すると,NUM回目の曜日を定義できます。数値(NUM)の指定がない場合,次に訪れる曜日を意味します。
曜日の後ろに「,」またはスペースを指定することで,「日時の移動」の定義を続けて指定できます。
-
-
その他の指定
その他の日時情報指定文字列の要素を次の表に示します。
表8‒11 日時情報指定文字列(その他)の要素 指定できる要素
詳細
コメント
日時情報指定文字列の中に「(」と「)」で囲んで,コメントとして任意の文字列を指定します。「(」と「)」が適切に入れ子状になっている場合,中に指定された文字列は無視されます。
また,「(」だけが指定されている場合,「(」以降の指定はすべて無視されます。
「絶対日時の指定」および「相対日時の指定」は次の順序で算出されます。2.〜4.の途中で,秒に換算した結果が0〜2147483647の範囲を超えた場合,最終結果に関係なくエラーになることがあります。
-
現在の日時,または「絶対日時の指定」で指定された日時を求めます。
-
1.に対して,「相対日時の指定」で指定された「曜日の移動」の結果を加算します。「絶対日時の指定」で「日付の指定」の指定がされた場合は,「曜日の移動」の指定があっても加算しません。
-
2.に対して,「相対日時の指定」で指定された「年・月の移動」のすべての結果を加算・減算します。
-
3.に対して,「相対日時の指定」で指定された「日の移動」,「時・分の移動」,「秒の移動」のすべての結果を加算・減算します。
2.〜4.は計算対象の日時からの移動分を計算します。
例えば,現在の日時が2014年4月30日10時10分10秒のときに「date -d "Fri, 1 year 1 month 1 day 1 hour 1 min 1 sec"」が指定された場合,次のように計算します。
- 1.で,現在の日時を求めます。
-
⇒2014年4月30日(水曜日)10時10分10秒になります。
- 2.で,2014年4月30日(水曜日)から次の金曜日までの日数を足します。
-
⇒2014年5月2日(金曜日)10時10分10秒になります。
- 3.で,365日と2014年の5月分の日数を足します。
-
⇒2015年6月2日(月曜日)10時10分10秒になります。
- 4.で,1日分の日数と,1時間1分1秒の時間を足します。
-
⇒2015年6月3日(火曜日)11時11分11秒になります。
終了コード
終了コード |
意味 |
---|---|
0 |
正常終了 |
1以上 |
エラー終了 |
注意事項
-
「+」で始まる引数に指定した書式コードが,strftime関数で有効な書式コード以外の場合は,指定された値をそのまま出力します。
-
Windowsの場合,有効な書式コードと無効な書式コードを混在して指定すると,すべての書式コードを変換しないで,指定された値をそのまま出力します。
-
UNIXの場合,有効な書式コードは変換出力し,無効な書式コードは指定された値を出力します。
-
Windowsの場合,環境変数TZを設定するときは,環境変数TZの値とコントロールパネルの「日付と時刻のプロパティ」ダイアログボックスで定義されているタイムゾーンを同じにしてください。同じでない場合,日時の表示が正しく行われない場合があります。
-
指定できる引数でない引数をコマンドラインに指定しても,その引数の指定は無視されます。
-
次の環境変数が設定されている場合は,「+」で始まる引数の後ろに指定したオプションは無視されます。
-
環境変数POSIXLY_CORRECT
-
環境変数ADSH_CMD_ARGORDER=seq
-
使用例
-
オプションを指定しない場合のデフォルトを表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\date 2011/05/09 月曜日 02:03:05 JST
-
-uオプションを指定して,UTC(世界協定時)の日付と時刻を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\date -u 2011/05/08 日曜日 17:03:11 UTC
-
-rオプションを指定して,エポックから,指定した秒が経過した日時を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\date -r 1234567890 2009/02/14 土曜日 08:31:30 JST
-
「+」で始まるオペランドに,表示する日付と時刻の形式を指定します。
C:\TEMP>%ADSH_OSCMD_DIR%\date "+%Y-%m-%d %H.%M.%S" 2011-05-09 02.10.02
-
今年の12月12日の日付を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\date -d "12/12" 2011/12/12 日曜日 00:00:00 JST
-
3か月と1日後の日付を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\date -d "3 months 1 day" 2011/08/10 水曜日 00:00:00 JST
-
2日前の日付を表示します。
C:\TEMP>%ADSH_OSCMD_DIR%\date -d "2 days ago" 2011/05/07 土曜日 00:00:00 JST
-
2011年5月1日から100日後の日付を表示します。日時情報指定文字列を--dateオプションで指定します。
C:\TEMP>%ADSH_OSCMD_DIR%\date --date="1-May-2011 100 days" 2011/08/09 火曜日 00:00:00 JST
-
オプションエラーのメッセージを表示します。
このメッセージは,コマンドを実行するプラットフォームによって異なる場合があります。Windowsの例を次に示します。
C:\TEMP>%ADSH_OSCMD_DIR%\date -a date: illegal option -- a usage: date [-u] [-d string | -r seconds] [+format]