我有一个输入日期:
01-01-2019 08:30:00
我想通过以下方式及时将其备份:
2小时10分钟
因此,新日期应为:
01-01-2019 06:20
我尝试了以下命令:
(1)date -d "2019-01-01 08:30:00 + 1hour"
返回值:Tue Jan 1 09:30:00 STD 2019
(好的,但似乎很幸运)
(2)date -d "2019-01-01 08:30:00 - 1hour"
返回:Tue Jan 1 11:30:00 STD 2019
表示+3小时(错误)
(3)date -d "2019-01-01 08:30:00 + 3hours"
返回:Tue Jan 1 07:30:00 STD 2019
表示-1小时(错误)
(4)date -d "2019-01-01 08:30:00 + 2minutes"
返回:Tue Jan 1 07:31:00 STD 2019
表示-59分钟(错误)
答案 0 :(得分:1)
您可能需要明确提及您的时区:
$ TZ=STD date -d '2019-01-01 08:30:00 STD + 1 hour'
Tue Jan 1 09:30:00 STD 2019
$ TZ=STD date -d '2019-01-01 08:30:00 STD - 3 hour'
Tue Jan 1 05:30:00 STD 2019
$ TZ=STD date -d '2019-01-01 08:30:00 STD + 2 minutes'
Tue Jan 1 08:32:00 STD 2019
这似乎减轻了date
的困惑。
答案 1 :(得分:0)
这是最可靠的方法:
Slider
首先将其转换为自纪元以来的秒数。
然后减去您想要的时间。
然后使用date -d "@$(( $(date -d '2019-01-01 08:30:00' +%s) - ( 2 * 60 + 10 ) * 60 ))"
格式化输出。