使用时间戳添加GNU日期命令的天数

时间:2018-06-07 12:10:15

标签: bash

当我运行此命令时,我得到了你期望的结果:

date -d "2018-06-07 + 1 days"
Fri Jun  8 00:00:00 CEST 2018

在所提供的日期添加1天(以午夜为起点)。

然而,当我尝试在一段时间(17:00:00)工作时,会发生两件事。

date -d "2018-06-07 17:00:00 + 28 days" 
  1. 最多25天,输出错误:错误的日期/错误的时间(我已经循环运行)。
  2. 超过25天,它开始吐出“日期:无效日期'2018-06-07 17:00:00 +25天'”
  3. 该联机帮助页说约-d / - 日期是几乎免费的格式。但是当你使用时间(小时:分钟:秒)时,我开始认为加号被错误地解释(可能是时区偏移?)?

    那么如何从时间戳日期添加天数?

1 个答案:

答案 0 :(得分:1)

对于有时间戳工作的日期的增量,时间戳必须采用date命令默认返回的标准格式。因此,请将日期清理为接受分钟算术并执行处理的格式。

date -d "2018-06-07 17:00:00"
Thu, Jun 07, 2018  5:00:00 PM

现在把它放在一个变量中,例如把你的字符串放在下面的例子中

dateStr=$(date -d "2018-06-07 17:00:00")
date -d "$dateStr + 28 days"

返回

Thu, Jul 05, 2018  5:00:00 PM

该示例使用来自IST的时区。