问题是,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!