вы можете конвертировать и сравнивать даты начала и окончания следующим образом:
startdate=${startdate//\"/}
stime=$(date -d "${startdate/T/ }" +%s)
enddate=${enddate//\"/}
etime=$(date -d "${enddate/T/ }" +%s)
let elapsed=etime-stime
[ $elapsed -gt 300 ] && echo "taking too long"
Дата GNU может выполнять математику напрямую (в секундах ).
POSIX-скрипт.
#!/bin/sh
sd='"2018-03-30T13:42:12Z"'
ed='"2018-03-30T13:42:21Z"'
sd=${sd#\"}; sd=${sd%\"} # Remove double quotes.
ed=${ed#\"}; ed=${ed%\"}
ep=$(date -d @0) # Epoch date (anchor).
ss=$(date -d "$sd" +%s) # Start time.
es=$(date -d "$ed" +%s) # End time.
elapsed=$(date -d "$ep - ${ss}sec + ${es}sec" +%s)
if [ "$elapsed" -gt 300 ]]; then
echo "taking too long"
fi