我使用下面的方法来获取上个月、当前月份和下个月的信息Ubuntu
11.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
我想输出应该是9
,10
,11
分别。
不明白为什么date
输出的行为如下。保持一致的好方法应该是什么previous
, current
and next
一个月?
问题是date
非常字面地接受您的请求,并尝试使用 9 月 31 日的日期(即 10 月 31 日减去一个月),然后因为该日期不存在,所以会移至下一天。这date
文档(来自info date
)有以下建议:
单位中的模糊可能会导致相关项目出现问题。为了
例如,“2003-07-31 -1 月”的计算结果可能为 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!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)