UNIX Shell计算两个时间戳之间的小时差

时间:2018-05-03 19:22:19

标签: shell unix sh unix-timestamp

我有两种格式的时间戳:

时间戳1(变量 - RunStartDate):Thu May 3 14:12:54 CDT 2018
时间戳2(变量 - RunEndDate):Thu May 3 18:11:46 CDT 2018

我想要UNIX shell中这两个时间戳之间的小时数差异。 (即RunEndDate - RunStartDate小时)

请帮助,我是UNIX的新手,当我试图减去这两个时,它给我带来了错误。

1 个答案:

答案 0 :(得分:2)

您可以在此处选择一些选项,例如调用Perl或Python以及使用日期/时间库为您进行数学运算。另一种选择是使用date程序将日期转换为秒,减去值,然后转换回小时。不幸的是,你不能在Bash中进行浮点数学运算,因此我们也必须召唤一个帮助程序来做这件事。

START=$(date -d "$RunStartDate" +"%s")
END=$(date -d "$RunEndDate" +"%s")
HOURS=$(bc -l <<< "($END - $START) / 3600")

请注意,这仅适用于GNU系统(例如Linux)。