我在 bash 中有 2 个字符串 s1 和 s2 (代表日期),格式为
s1="Fri Sep 10 22:24:51 IST 2021"
s2="Fri Sep 10 22:45:55 IST 2021"
我想减去这些日期并获得格式为HH:MM:SS的结果
我尝试了以下代码(至少将字符串转换为日期)
d1=$(date -s $s1 +%s)
d2=$(date -s $s2 +%s)
d3=$d2-$d1
echo "$d3"
但最终出现以下错误
date: extra operand ‘10’
这是我想要的示例输出
Subtracted Date in HH:MM:SS is "00:21:04"
我被困在这里,不知道如何继续。对此的任何帮助将不胜感激!
最佳答案
将 GNU date
的时间戳转换为自 1970-01-01 00:00:00 UTC 以来的秒数。将它们相减并将结果转换为所需的格式。
s1="Fri Sep 10 22:24:51 IST 2021"
s2="Fri Sep 10 22:45:55 IST 2021"
diff=$(( $(date -d "$s2" +%s) - $(date -d "$s1" +%s) ))
date -d "@$diff" -u +%H:%M:%S
输出:
00:21:04
关于bash - 在 bash 中减去 2 个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69136952/