脚本shell如何将x分钟添加到给定日期?

时间:2016-10-25 17:15:45

标签: bash shell

我需要在给定日期添加10分钟:

givenDate = 2016-10-25 18:22:37

执行时:

newDate=$(date +'%Y-%m-%d %T' --date="$givenDate + 10 minutes")
echo $newDate

我明白了:

  

2016-10-25 00:10:00

而不是

  

2016-10-25 18:32:37

第二个问题:如何围绕分钟编号,以便我可以按照例子获得这些结果:

18:08 - > 18:10

18:32 - > 18:40

18:46 - > 18时50分

18:55 - > 19:00

谢谢。

1 个答案:

答案 0 :(得分:4)

对于第一个问题,请放弃+,如下所示:

date +'%Y-%m-%d %T' --date="$givenDate 10 minutes"

对于第二个问题,我们必须提取当前分钟的最后一位数,然后使用模5计算要添加的分钟数,使其成为圆形:

givenDate="2016-10-25 18:22:37"

minute=$(echo $givenDate | sed 's/.*\([0-9]\):..$/\1/')
rounder=$((5 - minute % 5))
date +'%Y-%m-%d %T' --date="$givenDate $rounder minutes"

请注意,未考虑秒数