2019年11月28日木曜日

date コマンドで時間計算

Debian GNU/Linux の GNU date コマンドで時間の計算。
  $ date --version
  date (GNU coreutils) 8.30

[足し算]

・10分1秒 + 20分2秒
$ date -d "00:10:01 20minutes 2seconds" +%T
00:30:03
上と同じ
$ date -d "00:10:01 20 minutes 2 seconds" +%T
$ date -d "00:10:01 20minutes 2seconds" +%"T"
man date より
-d, --date=STRING
              現在時刻ではなく STRING で指定された時刻を表示する
%T   時刻。%H:%M:%S と同様
%H   時 (00..23)
%M   分 (00..59)
%S   秒 (00..60)

・05:20 + 5:15 + 8:41 + 8:01 + 6:47 + 5:24 + 5:02
$ date -d "00:05:20 5 minutes 15 seconds 8 minutes 41 seconds 8 minutes 1 seconds 6 minutes 47 seconds 5 minutes 24 seconds 5 minutes 2 seconds" +"%T"
00:44:30
最初だけは時分秒 00:00:00形式にする
'時'には hoursを使うが 00..23時の範囲。'日'をまたぐ例は下記の[年月日時分秒]
[引き算]

・2時間5分 - 10 分
$ date -d "02:05:00 10 minutes ago" +%T
01:55:00
"ago"をつけると"引く"

[年月日時分秒]
・2020年1月1日23時10分 + 60分
$ date -d '20200101 23:10:00 60 minutes'
2020年  1月  2日 木曜日 00:10:00 JST

・2020年1月1日23時10分 + 62分
$ date -d '20200101 23:10:00 62 minutes' +"%F %T"
2020-01-02 00:12:00
%F   完全形式の日付。 %Y-%m-%d と同様
上の例では %Fと%Tの間にスペース入れてます。

・2020年1月1日00時05分 - 1時間10分
$ date -d "20200101 00:05:00 1 hours ago 10 minutes ago"
2019年 12月 31日 火曜日 22:55:00 JST


0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。