我需要以某种方式在bash或其他实用程序中使用date命令打印出给定值之前5分钟和之后5分钟的日期和时间.例如:
输入:
Thu Dec 19 14:10
输出:
Thu Dec 19 14:05 Thu Dec 19 14:10 Thu Dec 19 14:15
我看到该date
命令可用于在当前日期/时间执行此操作,是否可以使用传递的值,即不是当前日期/时间?
您可以通过键入来实现当前时间.
$ date --date='5 minutes ago'; date; date --date='5 minutes' Qui Dez 19 16:09:17 BRST 2013 Qui Dez 19 16:14:17 BRST 2013 Qui Dez 19 16:19:17 BRST 2013
使用特定日期(来自1978/01/10).
$ date --date='1978-01-10 + 5 minutes' Ter Jan 10 00:05:00 BRT 1978
使用GNU date
,您可以使用--date
选项的参数执行一种简单的日期/时间算术形式:
$ date --date 'now + 5 minutes'
使用BSD date
(至少是Mac OS X附带的版本),该-v
选项允许您执行类似的操作,但仅限于当前时间:
$ date -v +5M $ date -v -5M
否则,您需要在将时间转换为UNIX时间戳(1970年1月1日以来的秒数)后显式执行数学运算:
$ date -r $(( $(date +%s) + 300 )) # 5 minutes (300 seconds) from now $ date -r $(( $(date +%s) - 300 )) # 5 minutes ago