查找两个固定格式字符串之间的时间差,如“DDD MMM dd hh:mm:ss HKT YYYY”

查找两个固定格式字符串之间的时间差,如“DDD MMM dd hh:mm:ss HKT YYYY”

我从程序日志中查找开始时间和结束时间字符串。我怎样才能找到小时的时差?

t1="Tue Feb 21 12:15:00 HKT 2023"
t2="Tue Feb 21 12:45:01 HKT 2023"

我看了看其他问题。但它们要么有不同的格式,要么直接从日期开始,比如date -d 'now + 3 weeks'

答案1

像这样:

#!/bin/bash

export TZ='Asia/Hong_Kong'
oldd=$(date -d "Tue Feb 21 12:15:00 HKT 2023" "+%s")
last=$(date -d "Tue Feb 21 12:45:01 HKT 2023" "+%s")
diff=$((last - oldd))
echo "$((diff/3600 )) hours $(( (diff/60)%60 )) minutes $(( diff%60 )) seconds"

输出

0 hours 30 minutes 1 seconds

相关内容