UNIX:dateコマンドで日付計算(タイムスタンプ/加算/減算)する

dateコマンドを用いて日付計算(タイムスタンプ変換/加算/減算)を行います。GNU系とBSD系のdateコマンドパラメーター差異は分けて記述しています。(2019/03/16作成)

時間 bus2896 / Pixabay

0)dateバージョン

1)日付フォーマットから unix time stamp にする

2)unix time stamp を日付フォーマットにする

3)指定日時の「11時間後」を求める

4)指定日時の「11時間前」を求める

5)解説

GNUの詳細

GNU系の場合は「 n days n hours ago 」といった指定により、任意の日数/時間数ずらした値を取得できます。
日時を指定しない場合は、現在日時を起点として計算します。
days以外にも hours, minutes, secondsを指定することで細かく指定できます。
agoを外すと加算になります。

BSDの詳細

BSD系の場合は、-vと数値の組み合わせで何日ずらすかを指定します。

-v[+|-][数字][ymwdHMS]

-v-1dであれば1日減算、-v+1dであれば1日加算します。
プラスもマイナスもない-v1dとした場合は、返却される日時のうち、日を「1」にします。
年の場合、年は「1980〜2038」か「80〜38」での指定になるので-v1yとしたときは「2001」となります。

例)

数値の後に指定できる値は下記の通りです。

以上

About yoshimasa

埼玉県さいたま市在住、2男3女のパパです。Linux系の技術情報を中心にまとめています。1978年2月生まれ。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください