!["%Y%m%d%H%M%S" 형식으로 날짜 차이를 찾습니다.](https://linux55.com/image/72453/%22%25Y%25m%25d%25H%25M%25S%22%20%ED%98%95%EC%8B%9D%EC%9C%BC%EB%A1%9C%20%EB%82%A0%EC%A7%9C%20%EC%B0%A8%EC%9D%B4%EB%A5%BC%20%EC%B0%BE%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
date +"%Y%m%d%H%M%S" 형식의 날짜가 두 개 있습니다. 시차를 찾는 방법과 시차가 4시간 이상인지 확인하는 방법은 무엇입니까?
이것이 내가 시도한 것입니다.
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
예를 들어:
date1=20150906171119
date2=20150906172244
예/시작은 다음과 같습니다.
#!/bin/bash
date1=20150906171119
date2=20150906172244
# Convert date to YYYYMMDD HH:MM:SS and get time in seconds.
d1=$(date -d"${date1:0:8} ${date1:8:2}:${date1:10:2}:${date1:12:2}" +%s)
d2=$(date -d"${date2:0:8} ${date2:8:2}:${date2:10:2}:${date2:12:2}" +%s)
# Limit in seconds
# 60 = 1 min
# 3600 = 1 hour
# 14400 = 4 hours
lim=14400
# arg1=time1 (seconds)
# arg2=time2 (seconds)
# arg3=difference limit
ddiff()
{
if (($1 > $2)); then
ddiff $2 $1 $3
else
return $(($2 - $1 < $3))
fi
}
if ddiff $d1 $d2 $lim; then
echo more then $lim seconds
else
echo less then $lim seconds
fi
date1 = date2
이것이 중요하다면 동등성 검사를 수행할 수 있습니다.
답변2
형식에 시간대가 없으므로 이 작업을 수행할 수 없습니다.
"%Y-%m-%d %H:%M:%S %z"
예를 들어 표준화된 형식이며 diff -u
형식에는 시간대가 포함됩니다.