如何计算给定日期的相对日期?

时间:2013-10-16 21:41:14

标签: bash date gnu

GNU date命令可以输出从-1 hour1 month ago等相关项计算的日期。它还可以输出不同输入格式的日期(例如日历日期,自纪元以来的秒数等)。

是否可以使用GNU§date实用程序结合日期格式和相对时间来计算给定日期的新日期?

类似的东西:

date_epoch=`date "+%s"`
date --date="@$date_epoch -1 month"

第二个命令给出“错误的日期”错误...

1 个答案:

答案 0 :(得分:3)

你可以做到,当然:

$ date -d"$(date -d@$date_epoch) -1 month" "+%Y-%m-%d"
2013-09-16

来自:

$ date_epoch=$(date "+%s")
$ date -d@$date_epoch
Wed Oct 16 23:46:50 CEST 2013

你可以使用它“硬编码”:

$ date -d"Wed Oct 16 23:46:50 CEST 2013 -1 month"
Mon Sep 16 23:46:50 CEST 2013

或使用变量:

$ date -d"$(date -d@$date_epoch) -1 month"
Mon Sep 16 23:46:50 CEST 2013