计算日期时差

时间:2013-11-12 06:20:51

标签: shell

我有两个变量。

GMDCOM变量以下面的格式存储日期时间

Tue Oct  1 13:37:38 2013
Tue Oct  1 13:32:40 2013
Tue Oct  1 13:37:53 2013

GMDRRS变量以下列格式存储日期时间

Tue Oct  1 13:35:33 2013
Tue Oct  1 13:34:33 2013
Tue Oct  1 13:32:33 2013

我想计算日期时间差异 例如2013年10月1日星期二13:37:38 - 2013年10月1日星期二13:35:33 hh:mm:ss格式 并将其存储在另一个变量中。我不想使用PERL,AWK或SED。相反,我想使用普通的BASH Shell命令来实现它。请帮忙。

1 个答案:

答案 0 :(得分:1)

尝试以下

#!/bin/bash

GMDCOM='Tue Oct  1 13:37:38 2013'
GMDRRS='Tue Oct  1 13:35:33 2013'

d1=$(date -d "$GMDCOM" +%s)
d2=$(date -d "$GMDRRS" +%s)
dd=$(($d1-$d2))

ss=$(($dd%60))
mm=$((($dd/60)%60))
hh=$((($dd/3600)%60))

printf "%02d:%02d:%02d\n" "$hh" "$mm" "$ss"