0

以下は、2 つのログの最初の行と最後の行です。これら 2 つのログの時間差を知りたいです。

INFO 02 Oct 2013 02:13:36,200 vert.x-eventloop-thread-1 [2514751586306/entityCrawl] [oiq.whiteboard.CrawlHandler] - 会社の開始

INFO 05 Oct 2013 02:13:36,200 vert.x-eventloop-thread-1 [2514735333378/entityCrawl] [oiq.whiteboard.CrawlHandler] - 会社終了 [4293663 ミリ秒]

次のプログラムを使用しました

#!/bin/bash
START=$(date --date="$1" +"%s")
ND=$(date --date="$2" +"%s")
DIFFSEC=$(($END-$START))
time=`date +%H:%M:%S -ud @${DIFFSEC}`
echo "$time" | awk -F':'  '{ print $1*3600 + $2*60 + $3 }'

しかし、それは私に正しい時差を与えませんでしたこれを解決するプログラムを教えてください

期待される出力:

開始時刻 = 2013 年 10 月 2 日 02:13:36

終了時間 = 2013 年 10 月 5 日 02:13:36

timediff=72:00:00

4

1 に答える 1

1

date期間ではなく、時刻を示します。差分値を時間、分、秒に変換するのは簡単で、単純な算術問題です。

diff=123456
(( hours = diff / 3600 ))
(( mins = (diff - hours*3600) / 60 ))
(( secs = diff % 60 ))
printf "%d:%02d:%02d\n" $hours $mins $secs
34:17:36

Bash では、必要に応じて、すべての数学を 1 つの算術式に入れることもできます。

(( 
    hours = diff / 3600,
    mins = (diff - hours*3600) / 60,
    secs = diff % 60 
))
于 2013-10-05T13:55:18.477 に答える