Bash Shell中date命令输出月份显示为00的原因
问题解决:date命令输出月份显示为00的原因及修复
核心问题
你用错了日期格式符:%M代表的是分钟(Minute),而非月份(Month),月份对应的正确格式符是小写的%m。这就是为什么无论调整日期计算逻辑,输出里的月份位置始终显示00(默认分钟为0的场景下)。
修复后的命令示例
- 原问题的正确执行命令:
$ date -d "1932-08-31+7 month" '+%d-%m-%Y'
输出结果:31-03-1933(注:1932年8月31日加7个月对应1933年3月31日)
- 其他测试案例的正确命令及输出:
# 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
相关产品推荐
相关产品推荐

