如何将UNIX HH:MM:SS设置为日期时间来计算时差

时间:2013-07-10 09:40:44

标签: bash unix time

我想通过传入字符串HH:MM来计算时间差,以设置时间并计算此时间与当前系统时间之间的差异。

我知道date --set="2013-07-10"+%T(或类似的东西)。但我无法弄清楚如何将时间部分设置为我传入的字符串HH:MM值并将数据保留为当前日期。然后,计算我试图使用下面的内容将其更改为时间戳值;我从其他用户那里找到了:

mydate=??
date1=$($mydate +"%s")  #my set date/time here
date2=$(date +"%s")
diff=$(($date2-$date1))
echo "$(($diff / 60)) minutes and $(($diff % 60))"

1 个答案:

答案 0 :(得分:2)

您可以使用date -d hh:mm创建具有指定时间的新日期。

示例:

$ date -d 11:15
Wed Jul 10 11:15:00 BST 2013

使用此功能,您可以编写以下脚本:

time=11:15

now=$(date +%s)
other=$(date -d $time +%s)
diff=$((other-now))
echo "$((diff / 60)) minutes and $((diff % 60)) seconds"