You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bash Shell中date命令输出月份显示为00的原因

问题解决:date命令输出月份显示为00的原因及修复

核心问题

你用错了日期格式符:%M代表的是分钟(Minute),而非月份(Month),月份对应的正确格式符是小写的%m。这就是为什么无论调整日期计算逻辑,输出里的月份位置始终显示00(默认分钟为0的场景下)。

修复后的命令示例

  1. 原问题的正确执行命令:
$ date -d "1932-08-31+7 month" '+%d-%m-%Y'

输出结果:31-03-1933(注:1932年8月31日加7个月对应1933年3月31日)

  1. 其他测试案例的正确命令及输出:
# 19320831加8天加1个月
$ date -d "19320831+8 days+1 month" '+%d-%m-%Y'
09-09-1932

# 19320831加8天
$ date -d "19320831+8 days" '+%d-%m-%Y'
08-09-1932

补充说明

GNU date命令的日期格式符区分大小写,常用的几个关键符:

  • %m:两位数字的月份(01-12)
  • %M:两位数字的分钟(00-59)
  • %d:两位数字的日期(01-31)
  • %Y:四位数字的年份

内容的提问来源于stack exchange,提问作者Louis-Olivier Beaulieu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 04:06:00