下个月用date命令?

时间:2014-03-31 14:31:52

标签: bash date

我在我的一个剧本中有这个,我肯定已经工作了很长时间。今天下个月说的是五月?

#date
Mon Mar 31 15:30:13 BST 2014

#date +"%B %Y" --date="+1 month"
May 2014

任何人都知道问题是什么 - 下个月有更好的""脚本我应该用?

2 个答案:

答案 0 :(得分:13)

来自GNU手册页:

  

日期单位中的模糊可能会导致相关项目出现问题。例如,'2003-07-31 -1 month'可能会评估为2003-07-01,因为2003-06-31是无效日期。   要更可靠地确定上个月,您可以要求当月15日之前的月份

您可以使用所有月份都存在的日期:

date +"%B %Y" --date="$(date +%Y-%m-15) next month"

结果:

April 2014

答案 1 :(得分:-2)

要查找上个月,请执行以下命令:

date -d "-1 months" +%Y/%-m/%-d

将在2018/3/22给你2018/2/22 和

date -d "-1 days" +%Y/%-m/%-d

会给你2018/3/21

您可以添加或减少您喜欢的月份或天数。如果减去足够的月份,它将会去年。