DATEコマンド
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
日付を取得する
昨日の日付を取得する
拡張された date コマンド「GNU date」が使用可能な場合
date -d '1 days ago'→ 「-d 'N days ago'」で N 日前の日付...
Linux では拡張された date コマンドが使用できるので、簡単...
$ date
2007年 6月 2日 土曜日 23:05:20 JST
※↑そのまま実行すると当日の日時が表示される。
$ date -d '1 days ago'
2007年 6月 1日 金曜日 23:05:31 JST
※↑1日前を指定すると、現在日時から24時間前の日時が表示され...
TZ=JST+15 date→ 一時的に環境変数 TZ を変更した上で date ...
古い UNIX マシンなどでは、「GNU date」が使用できない場合...
参考記事: [UNIX]日時の話いろいろ
$ echo $TZ
JST-9
※↑デフォルトのタイムゾーン。
$ date
Sun Jun 26 03:38:04 2005
※↑date コマンドを普通に実行すると今日の日付。
$ TZ=JST+15 date
Sat Jun 25 03:39:03 2005
※↑環境変数 TZ を変更して date コマンドを打つと昨日の日付。
$ echo $TZ
JST-9
※↑実行後もタイムゾーンはデフォルトのまま。参考 〜 一時的...
コマンド実行時に TZ=JST+15 date +%m/%d/%Y のように同一行...
明日の日付を取得する
拡張された date コマンド「GNU date」が使用可能な場合
date -d '1 days'→ 「-d 'N days'」で N 日後の日付を取得で...
Linux では拡張された date コマンドが使用できるので、前述...
「GNU date」が使用できない場合
TZ=JST-33 date→ 一時的に環境変数 TZ を変更した上で date ...
GNU date が使用できない場合も、前述の昨日の日付と同様に、...
日付のフォーマットを指定する
date '+フォーマット'→ "+" を先頭に付け、日時の各情報を表...
フォーマットの指定には「年」「月」「日」「時」「分」など...
取得する情報 書式
1970/01/01 00:00:00 からの経過秒 %s
年(西暦4桁) %Y
年(西暦下2桁) %y
月(01〜12) %m
月(Jan〜Dec) %b
月(January〜December) %B
日(01〜31) %d
日( 1〜31) ※空白含む2桁 %e
曜日(Sun〜Sat) %a
曜日(Sunday〜Saturday) %A
曜日(0〜6) ※0は日曜日 %w
時(00〜23) %H
時(01〜12) %I
時( 0〜23) ※空白を含む2桁 %k
時( 1〜12) ※空白を含む2桁 %l
分(00〜59) %M
秒(00〜59) %S
AM/PM %p
am/pm %P
改行 %n
フォーマットを指定して日時を表示するには、以下のようにパ...
フォーマット コマンド
yyyy/mm/dd date '+%Y/%m/%d'
yyyy/mm/dd (Sun..Sat) date '+%Y/%m/%d(%a)'
yy/mm/dd date '+%y/%m/%d'
yyyy-mm-dd date '+%F'
mm/dd/yy date '+%D'
hh:mm (24時間制) date '+%R'
hh:mm:ss (24時間制) date '+%T'
hh:mm:ss AM|PM (12時間制) date '+%r'
実際にコマンドを実行してみる。実行した日時は2005年9月11日...
$ date '+%Y/%m/%d'
2005/09/11
$ date '+%Y/%m/%d(%a)'
2005/09/11(Sun)
$ date '+%y/%m/%d'
05/09/11
$ date '+%F'
2005-09-11
$ date '+%D'
09/11/05
$ date '+%R'
01:18
$ date '+%T'
01:18:01
$ date '+%r'
01:18:06 AM
$ date '+%Y/%m/%d%n%r'
2005/09/11
01:18:27 AM
※↑%n を使用することで、出力に改行を含めることができる。他...
日付取得の応用
※ 以下、GNU date コマンドが使用可能であることを前提とする。
過去・未来の日付を求める
現在日時から指定した時間分の過去・未来の日時を求める。
# 現在日時から10秒前の日時を求める
date -d '10 seconds ago'
# 現在日時から10秒後の日時を求める
date -d '10 seconds'
# 現在日時から10分前の日時を求める
date -d '10 minutes ago'
# 現在日時から10分後の日時を求める
date -d '10 minutes'
# 現在日時から10時間前の日時を求める
date -d '10 hours ago'
# 現在日時から10時間後の日時を求める
date -d '10 hours'
# 現在日時から10日前の日時を求める
date -d '10 days ago'
# 現在日時から10日後の日時を求める
date -d '10 days'
# 現在日時から10ヶ月前の日時を求める
date -d '10 months ago'
# 現在日時から10ヶ月後の日時を求める
date -d '10 months'
# 現在日時から10年前の日時を求める
date -d '10 years ago'
# 現在日時から10年後の日時を求める
date -d '10 years'
# 上記のコマンドはそれぞれフォーマットを指定して実行する...
date -d '12 hours ago' '+%Y-%m-%d [%H:%M:%S]'date コマン...
# 現在日時を「2006/01/01 12:13:14」としてコマンドを実行する
date -d '2006/01/01 12:13:14'
# フォーマットの指定も可能
date -d '2006/01/01 12:13:14' '+%Y %m %d - %H %M %S'→ dat...
さらに特定の日時から、指定した時間分の過去・未来の日時を...
date -d '2006/01/01 12:13:14 1 months ago'
# フォーマットの指定も可能
date -d '2006/01/01 12:13:14 1 months ago' '+%Y %m %d - %...
ログファイルなどから取得した日付を、どちらが古い、もしく...
date_comparison.sh
#/bin/bash
# 1970-01-01 00:00:00 からの経過秒に変換する
DATE_1=`date -d "$1" '+%s'`
DATE_2=`date -d "$2" '+%s'`
# 2つの日付を表示しておく
echo "DATE 1: $1"
echo "DATE 2: $2"
# 2つの日付を比較し、結果を表示する
if [ $DATE_1 -eq $DATE_2 ]; then
echo "指定された2つの日付は同一日時です。"
elif [ $DATE_1 -gt $DATE_2 ]; then
echo "DATE 1 の方が新しい日付です。"
elif [ $DATE_1 -lt $DATE_2 ]; then
echo "DATE 2 の方が新しい日付です。"
fi
exit 0このシェルスクリプト date_comparison.sh の実行結果...
$ ./date_comparison.sh "2006/01/01 00:00:00" "2006/01/01 ...
DATE 1: 2006/01/01 00:00:00
DATE 2: 2006/01/01 00:00:00
指定された2つの日付は同一日時です。
$ ./date_comparison.sh "2006/01/01 00:00:01" "2006/01/01 ...
DATE 1: 2006/01/01 00:00:01
DATE 2: 2006/01/01 00:00:00
DATE 1 の方が新しい日付です。
$ ./date_comparison.sh "2006/01/01 00:00:00" "2006/01/01 ...
DATE 1: 2006/01/01 00:00:00
DATE 2: 2006/01/01 00:00:01
DATE 2 の方が新しい日付です。日付は date コマンドのフォー...
ちなみに、'+%s' を使用した date コマンドの実行結果は以下...
$ date -d '2006/01/01 00:00:00' '+%s'
1136041200
$ date -d '2006/01/01 00:00:01' '+%s'
1136041201
終了行:
日付を取得する
昨日の日付を取得する
拡張された date コマンド「GNU date」が使用可能な場合
date -d '1 days ago'→ 「-d 'N days ago'」で N 日前の日付...
Linux では拡張された date コマンドが使用できるので、簡単...
$ date
2007年 6月 2日 土曜日 23:05:20 JST
※↑そのまま実行すると当日の日時が表示される。
$ date -d '1 days ago'
2007年 6月 1日 金曜日 23:05:31 JST
※↑1日前を指定すると、現在日時から24時間前の日時が表示され...
TZ=JST+15 date→ 一時的に環境変数 TZ を変更した上で date ...
古い UNIX マシンなどでは、「GNU date」が使用できない場合...
参考記事: [UNIX]日時の話いろいろ
$ echo $TZ
JST-9
※↑デフォルトのタイムゾーン。
$ date
Sun Jun 26 03:38:04 2005
※↑date コマンドを普通に実行すると今日の日付。
$ TZ=JST+15 date
Sat Jun 25 03:39:03 2005
※↑環境変数 TZ を変更して date コマンドを打つと昨日の日付。
$ echo $TZ
JST-9
※↑実行後もタイムゾーンはデフォルトのまま。参考 〜 一時的...
コマンド実行時に TZ=JST+15 date +%m/%d/%Y のように同一行...
明日の日付を取得する
拡張された date コマンド「GNU date」が使用可能な場合
date -d '1 days'→ 「-d 'N days'」で N 日後の日付を取得で...
Linux では拡張された date コマンドが使用できるので、前述...
「GNU date」が使用できない場合
TZ=JST-33 date→ 一時的に環境変数 TZ を変更した上で date ...
GNU date が使用できない場合も、前述の昨日の日付と同様に、...
日付のフォーマットを指定する
date '+フォーマット'→ "+" を先頭に付け、日時の各情報を表...
フォーマットの指定には「年」「月」「日」「時」「分」など...
取得する情報 書式
1970/01/01 00:00:00 からの経過秒 %s
年(西暦4桁) %Y
年(西暦下2桁) %y
月(01〜12) %m
月(Jan〜Dec) %b
月(January〜December) %B
日(01〜31) %d
日( 1〜31) ※空白含む2桁 %e
曜日(Sun〜Sat) %a
曜日(Sunday〜Saturday) %A
曜日(0〜6) ※0は日曜日 %w
時(00〜23) %H
時(01〜12) %I
時( 0〜23) ※空白を含む2桁 %k
時( 1〜12) ※空白を含む2桁 %l
分(00〜59) %M
秒(00〜59) %S
AM/PM %p
am/pm %P
改行 %n
フォーマットを指定して日時を表示するには、以下のようにパ...
フォーマット コマンド
yyyy/mm/dd date '+%Y/%m/%d'
yyyy/mm/dd (Sun..Sat) date '+%Y/%m/%d(%a)'
yy/mm/dd date '+%y/%m/%d'
yyyy-mm-dd date '+%F'
mm/dd/yy date '+%D'
hh:mm (24時間制) date '+%R'
hh:mm:ss (24時間制) date '+%T'
hh:mm:ss AM|PM (12時間制) date '+%r'
実際にコマンドを実行してみる。実行した日時は2005年9月11日...
$ date '+%Y/%m/%d'
2005/09/11
$ date '+%Y/%m/%d(%a)'
2005/09/11(Sun)
$ date '+%y/%m/%d'
05/09/11
$ date '+%F'
2005-09-11
$ date '+%D'
09/11/05
$ date '+%R'
01:18
$ date '+%T'
01:18:01
$ date '+%r'
01:18:06 AM
$ date '+%Y/%m/%d%n%r'
2005/09/11
01:18:27 AM
※↑%n を使用することで、出力に改行を含めることができる。他...
日付取得の応用
※ 以下、GNU date コマンドが使用可能であることを前提とする。
過去・未来の日付を求める
現在日時から指定した時間分の過去・未来の日時を求める。
# 現在日時から10秒前の日時を求める
date -d '10 seconds ago'
# 現在日時から10秒後の日時を求める
date -d '10 seconds'
# 現在日時から10分前の日時を求める
date -d '10 minutes ago'
# 現在日時から10分後の日時を求める
date -d '10 minutes'
# 現在日時から10時間前の日時を求める
date -d '10 hours ago'
# 現在日時から10時間後の日時を求める
date -d '10 hours'
# 現在日時から10日前の日時を求める
date -d '10 days ago'
# 現在日時から10日後の日時を求める
date -d '10 days'
# 現在日時から10ヶ月前の日時を求める
date -d '10 months ago'
# 現在日時から10ヶ月後の日時を求める
date -d '10 months'
# 現在日時から10年前の日時を求める
date -d '10 years ago'
# 現在日時から10年後の日時を求める
date -d '10 years'
# 上記のコマンドはそれぞれフォーマットを指定して実行する...
date -d '12 hours ago' '+%Y-%m-%d [%H:%M:%S]'date コマン...
# 現在日時を「2006/01/01 12:13:14」としてコマンドを実行する
date -d '2006/01/01 12:13:14'
# フォーマットの指定も可能
date -d '2006/01/01 12:13:14' '+%Y %m %d - %H %M %S'→ dat...
さらに特定の日時から、指定した時間分の過去・未来の日時を...
date -d '2006/01/01 12:13:14 1 months ago'
# フォーマットの指定も可能
date -d '2006/01/01 12:13:14 1 months ago' '+%Y %m %d - %...
ログファイルなどから取得した日付を、どちらが古い、もしく...
date_comparison.sh
#/bin/bash
# 1970-01-01 00:00:00 からの経過秒に変換する
DATE_1=`date -d "$1" '+%s'`
DATE_2=`date -d "$2" '+%s'`
# 2つの日付を表示しておく
echo "DATE 1: $1"
echo "DATE 2: $2"
# 2つの日付を比較し、結果を表示する
if [ $DATE_1 -eq $DATE_2 ]; then
echo "指定された2つの日付は同一日時です。"
elif [ $DATE_1 -gt $DATE_2 ]; then
echo "DATE 1 の方が新しい日付です。"
elif [ $DATE_1 -lt $DATE_2 ]; then
echo "DATE 2 の方が新しい日付です。"
fi
exit 0このシェルスクリプト date_comparison.sh の実行結果...
$ ./date_comparison.sh "2006/01/01 00:00:00" "2006/01/01 ...
DATE 1: 2006/01/01 00:00:00
DATE 2: 2006/01/01 00:00:00
指定された2つの日付は同一日時です。
$ ./date_comparison.sh "2006/01/01 00:00:01" "2006/01/01 ...
DATE 1: 2006/01/01 00:00:01
DATE 2: 2006/01/01 00:00:00
DATE 1 の方が新しい日付です。
$ ./date_comparison.sh "2006/01/01 00:00:00" "2006/01/01 ...
DATE 1: 2006/01/01 00:00:00
DATE 2: 2006/01/01 00:00:01
DATE 2 の方が新しい日付です。日付は date コマンドのフォー...
ちなみに、'+%s' を使用した date コマンドの実行結果は以下...
$ date -d '2006/01/01 00:00:00' '+%s'
1136041200
$ date -d '2006/01/01 00:00:01' '+%s'
1136041201
ページ名: