我有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')))"
但是它不起作用。有什么想法是解决此问题的最佳方法吗?
答案 0 :(得分:1)
答案 1 :(得分:1)
echo "$((($(date -d "$END" '+%s') - $(date -d "$START" '+%s'))/60/60))"
输出:
3
答案 2 :(得分:0)
在使用内置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首先转换为时代的类似方法。