有一个非常简单的办法能够解决这个问题,那就是通过时间序列的办法。

要知道所有时间都能够化成秒,所以我们的原理就是
(时间化成秒)—-》(加减秒)—-》(加减完的秒时间然后再化成格式化的时间)

具体代码如下:

功能为在1990-01-01 01:01:01这个时间基础上加上1个小时20分钟,思路为先把时间化成秒,然后加上1个小时二十分钟所对应的秒,然后再格式化时间

#!/bin/bash
time1=$(date +%s -d '1990-01-01 01:01:01')  #将时间化为秒
time2=$((1*60*60+20*60))  #一个小时二十分钟所对应的秒  
time1=$(($time1+$time2))  #加上一个小时二十分钟
time1=$(date +%Y-%m-%d\ %H:%M:%S -d "1970-01-01 UTC $time1 seconds");#格式化时间
echo "时间为"+$time1

总结

如果是减去某个时间的话,就把把加号换成减号就可以了。这个事情比较有通用性,因为无论是加减分钟还是小时还是秒,都可以统一的化成秒然后对应起来了。

Logo

更多推荐