在bash中将当前日期增加5分钟



在我的脚本中,我将当前日期存储在一个变量中,但我希望该变量提前5分钟存储日期。

29/10/2014-10:47:06 to 29/10/2014-10:52:06

在Bash中有一种快速简单的方法可以做到这一点吗?例如,如果时间是10:59:00(识别进入下一个小时),则寻找一个也能正确工作的解决方案。

我找到了一些Perl解决方案,但没有找到Bash的解决方案。

您可以使用-d选项:

$ date
mercredi 29 octobre 2014, 11:45:45 (UTC+0100)
$ date -d '5 mins'
mercredi 29 octobre 2014, 11:50:55 (UTC+0100)

如果你想使用一个变量:

$ curr=$(date +%d/%m/%Y-%H:%M:%S)
$ echo $curr
29/10/2014-11:59:50
$ date -d "($cur) +5mins" +%d/%m/%Y-%H:%M:%S
29/10/2014-12:04:54

您需要使用-d选项,其中包含任何用户定义的日期:

 date -d '2014/10/29 10:58:06  5 minutes'
 Wed Oct 29 11:03:06 IST 2014

当前日期

date -d '5 minutes'

看看datedate +%s给出自1970年1月1日起的秒数,加上5*60,然后使用date --date='@<newTime>'

参见bash中的man date

在Bash中,date命令支持以下选项:

 -a [-]sss.fff   Slowly adjust the time  by  sss.fff  seconds
                 (fff represents fractions of a second). This
                 adjustment can be positive or negative.  The
                 system's  clock  is  sped  up or slowed down
                 until  it  has  drifted  by  the  number  of
                 seconds  specified.  Only the super-user may
                 adjust the time.

因此,使用以下内容添加5分钟(=300秒):

date -a 300

如果以上选项不适用,您可以尝试以下操作:

根据";日期";(人工日期),您可以用"-v〃;选项后面跟着+/-{value}{y/m/w/d/H/M}

例如,以下命令将输出当前日期和当前日期+5分钟:

username@pc-name ~ % date
Sun Oct 23 13:03:06 EEST 2022
username@pc-name ~ % date -v +5M
Sun Oct 23 13:08:15 EEST 2022

您也可以将格式应用于编辑的日期:

username@pc-name ~ % date -v +5M +%Y-%m-%dT%H:%MZ
2022-10-23T13:08Z

以下是相关文档:

当设置值(而不是调整它们)时,秒在0-59之间,分钟在范围0-59,小时在范围0-23,月-天在1-31的范围内,星期天在范围内0-6(周日-周六),月份在1-12(1月-Dec)和年份在80-38或1980-2038的范围内。

如果val是数字,则y、m、w、d、H、m或必须使用S来指定日期的哪一部分以进行调整。

可以使用名称指定周、日或月而不是一个数字。如果名称与加(或减)号,日期会提前(或向后)到下一个(上一个)日期匹配给定的星期天或月份。这不会如果给定的星期日或月份为与当前版本相同。

最新更新