Bash 中日期之间的小时差

Bash 中日期之间的小时差

如何找出两个日期格式之间的差异

date +"%H-%M-%d-%m-%Y"

我还想知道小时数的差异。如何使用单个命令找到它。

答案1

如果文件中的日期每行一个,例如:

16-49-24-02-2016
16-49-25-02-2016

然后你可以使用awk

awk -F- 'NR==1 {
  then = mktime(sprintf("%s %s %s %s %s 00", $5, $4, $3, $1, $2))
}
NR==2 {
  now = mktime(sprintf("%s %s %s %s %s 00", $5, $4, $3, $1, $2)); 
  printf "%s\n", (now - then)/3600
}' input.txt

mktime函数需要以 为单位的时间YYYY MM DD HH MM SS,因此我们拆分给定的时间戳并将其转换为该格式(使用00秒)。时间戳之间的差异以秒为单位,因此我们除以 3600 得到小时数。

相关内容