2015-09-06 53 views
1

我在日期+「%Y%m%d%H%M%S」格式中有兩個日期。如何找到差異以及如何檢查差異是否超過4小時? 這就是我試圖unix shell腳本中兩個日期的區別

echo $((($(date +"%Y%m%d%H%M%S") - $(date +"%Y%m%d%H%M%S" -d "1970-01-01 + $(stat -c '%Z' filename) secs")))) 

date命令返回此

Sun Sep 6 10:35:19 CDT 2015 
+1

你可以將它們轉換爲unix時間戳。 –

回答

1

這個外殼函數使用GNU date命令你的日期字符串轉換爲秒,因爲時代:

function dateconv() { 
    date --date=${1:0:4}-${1:4:2}-${1:6:2}T${1:8:2}:${1:10:2}:${1:12:2} +%s 
} 

它插入連字符,冒號和T以將其轉換爲日期可理解爲輸入格式的ISO 8601格式。

隨着該定義,你可以做這樣的事情,檢查變量兩個字符串之間的區別D1和D2:

if [ $(($(dateconv $d2) - $(dateconv $d1))) -gt 14400 ] 
then 
    echo Difference is more than 4 hours 
fi 

這兩個日期字符串轉換爲秒,減去它們,如果差檢查超過14400秒(4小時)。