我需要在给定日期后再加上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
谢谢您。

最佳答案

对于第一个问题,按如下方式删除+

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"

注意,没有考虑秒数

09-30 16:42
查看更多