使用bash计算以秒为单位的时间

时间:2016-06-10 20:13:06

标签: bash datetime

我有一个cron作业,它每15分钟处理一次数据(12:00,12:15等等)我需要一个bash函数/脚本来确定相对于当前时间的下一个处理周期的秒数。如果当前时间=“2016年15:09:00” 下一个处理周期是360秒。有任何想法吗?感谢。

2 个答案:

答案 0 :(得分:3)

获取自UNIX纪元以来的当前时间

$ now=$(date +%s)

然后计算该值mod 900(900秒为15分钟)并从900减去该值。

$ echo $((900 - now % 900))

答案 1 :(得分:1)

date命令允许在-d --date选项后提供日期。 date也了解相对日期(例如+ 6 min+3 days等。)。因此,如果您需要了解将来6分钟的内容,您只需使用date -d "+ 6 min"查找确切的时间即可。 e.g。

$ date
Fri Jun 10 15:22:45 CDT 2016

$ date -d "+ 6 min"
Fri Jun 10 15:28:47 CDT 2016