我有2个日期都符合ISO - 8061标准的日期格式。
echo $START
2019-02-14T16:09:13Z
echo $END
2019-02-14T19:43:12Z
现在我想找到两者之间的时差。我希望差异是几个小时。
我尝试过的是:
echo "$(($(date -d "$START" '+%s') - $(date -d "$END" '+%s')))"
但它不起作用。任何想法是解决这个问题的最佳方法吗?
echo "$((($(date -d "$END" '+%s') - $(date -d "$START" '+%s'))/60/60))"
输出:
3
在使用内置BSD date
的macOS上,需要一个更详细的解决方案:
echo "$((($(date -jf '%Y-%m-%dT%H:%M:%SZ' "$END" '+%s') - \
$(date -jf '%Y-%m-%dT%H:%M:%SZ' "$START" +%s))/3600 ))"
输出:
3
类似于@Cyrus的answer首先转换为epoch的方法。