使用`date`命令获取上个月,当前和下个月

我正在使用以下方法在Ubuntu11.04 下获取上一个,当前和下个月:

LAST_MONTH=`date +'%m' -d 'last month'`

NEXT_MONTH=`date +'%m' -d 'next month'`

THIS_MONTH=`date +'%m' -d 'now'`

直到今天,即2012年10月的最后一天(2012-10-31)

到目前为止,我得到的结果如下:

$ date

Wed Oct 31 15:35:26 PDT 2012

$ date +'%m' -d 'last month'

10

$ date +'%m' -d 'now'

10

$ $ date +'%m' -d 'next month'

12

我想输出应该是91011分别。

不明白为什么date输出会像这样。什么是获得一致性的好方法previouscurrentnext改为月份?

回答:

问题是,date从字面上接受您的请求,并尝试使用9月31日(10月31日减去一个月)的日期,然后由于该日期不存在,它将移至第二天。将date(从文件info

date)有以下建议:

单位的绒毛可能导致相关项目出现问题。例如,“ 2003-07-31 -1

month”的计算结果为2003-07-01,因为2003-06-31是无效日期。为了更可靠地确定上个月,您可以要求当月15日之前的月份。例如:

 $ date -R

Thu, 31 Jul 2003 13:02:39 -0700

$ date --date='-1 month' +'Last month was %B?'

Last month was July?

$ date --date="$(date +%Y-%m-15) -1 month" +'Last month was %B!'

Last month was June!

以上是 使用`date`命令获取上个月,当前和下个月 的全部内容, 来源链接: utcz.com/qa/434748.html

回到顶部