Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

date

システム日付と時刻を表示/設定する
2015/05/20 08:00

対応OS: linux , freebsd, solaris
date [-u] [+FORMAT] [DATETIME]

 

 dateコマンドは、引数を指定せずに実行すると、現在の日付と時刻を「火2月18 03:29:09 JST 2003」(曜日月日時::JST 西暦年)のように表示します。引数を指定して実行すると、日付/時刻の設定や、ユーザが定義した形式に従った日付や時刻の表示が行えます。

注意

 日付/時刻の設定はスーパーユーザだけが行えます

JST

 グリニッジ標準時からの時差をもつための情報で、地域によって決まるタイムゾーンというものがあります。日本のタイムゾーンはJSTという定義になります

オプション
① -u
日付/時刻をグリニッジ標準時で表示します。
引数
① +FORMAT
+(プラス)で始まる引数は、日付と時刻の表示方法を指定するフォーマット文字列です。フォーマット文字列には、以下の表に示す変換文字列と、任意のテキストを含むことができます。
時刻フィールドに+形式で指定する変換文字列
変換文字列内容
%H24時間表示で表した時(00から23)。1桁の場合は前に0が付加される
%I(大文字“アイ”)12時間表示で表した時(01から12)。1桁の場合は前に0が付加される
%k24時間表示で表した時( 0から23)。1桁の場合は前に空白文字が付加される
%l(小文字“エル”)12時間表示で表した時( 1から12)。1桁の場合は前に空白文字が付加される
%M分(00から59)。1桁の場合は前に0が付加される
%p午前あるいは午後
%r%pを伴った、12時間表示形式で表した時刻
%s1970-01-01 00:00:00 UTCからの秒数
%S秒(00から61)。1桁の場合は前に0が付加される
%Xロケールによる時刻の表現(ロケールがja_JPの場合「%H時%M分%S秒」)
注意

 「%S」つまり秒では、うるう秒を表示できるように、00から61までの値で返されます

ロケール

 ロケールとは、地域情報のことであり、言語環境、日付や時刻の表現方法、通貨の単位などを決めるために用いられます

フォーマット文字列と変換文字列

 フォーマット文字列とは、dateコマンドにより日付/時刻を表示する場合に、どのような形式で表示するかを決めるための表現方法で、変換文字列は、日付/時刻を設定する場合に用いるフォーマット(形式)を表記するための文字列のことです

② DATETIME

スーパーユーザはdateコマンドを使って、日付/時刻の設定を行うことができます。日付/時刻を設定するには、dateに続けて、次の形式に従って日付と時刻を指定します。

 MMDDhhmm[[CC]YY][.ss] [Linux]

 [[[[yy]mm]dd]HH]MM[.ss] [FreeBSD]

 mmddHHMM[cc]yy[.SS] [Solaris]

日付/時刻設定値として指定する文字列(OSによって指定文字列が異なることに注意)
指定文字列内容
LinuxFreeBSDSolaris
CCcccc年(西暦年の千の位と百の位)
YYyyyy年(西暦年の十の位と一の位)
MMmmmm
DDdddd
hhHHHH
mmMMMM
ssssSS
システム日時を形式を指定して表示する
$ date +%X 
23時58分35秒
$
$ date +%H.%M.%S
23.59.16
$ date
水2月19 23:59:29 JST 2003
$ date +%r
11:59:50 午後
スーパーユーザで日付/時刻を設定する(Linux)
# date 052100042003.00 
水 5月 21 00:04:00 JST 2003
#
dateコマンドのこんな使い方

 ファイル名を付ける時、いつ作成したかわかるとよい場合があります。ファイルはファイル作成日時の情報を保持していますので、lsコマンドを実行して詳細表示することでわかるのですが、ファイル名に日時データが入っているとそれをすぐに確認できます。特にログインした時に自動的に実行されるコマンドの出力ファイル名などは、同じ名前では、上書きされてしまいますので、日時データを入れて名前が重複しないようにしたいという場合があります。そのような場合、筆者はdateコマンドを次のように使用します。

 [takeda]$ tar czvf /backup/f`date +%H%M%S`.tgz *

 この場合は、「``」で囲まれた「date +%H%M%S」の出力結果である「091032」(9時10分32秒に作成したことを表す)が付加されます。結果として、「/backup」というディレクトリ内に「f091032.tgz」というバックアップファイルが作成されます。

関連タグ

UNIXコマンド辞典トップページに戻る

All contents copyright © 2006-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5