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

Android Java中Calendar日期格式化问题:月份显示异常

问题解决:日期格式化中月份显示错误的原因与修复

哈哈,一眼就找到问题啦!你看到的22-42-2018这种奇怪结果,核心原因是日期格式符用错了:

  • 你代码里的SimpleDateFormat("dd-mm-yyyy")中,小写的mm代表的是分钟(minute),不是月份!这就是为什么会出现42这种超出月份范围的数字——它其实是当前时间的分钟数。
  • 正确表示月份的格式符是大写的MM,这样才会解析/格式化日期中的月份部分。

修正后的代码

// 把格式符里的mm改成MM
SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Calendar cal = Calendar.getInstance();

// 获取当前日期作为账单日期(format返回的就是String,无需额外toString())
String billdate = dateFormat.format(cal.getTime());

// 月份加1,计算到期日期
cal.add(Calendar.MONTH, 1);
String duedate = dateFormat.format(cal.getTime());

额外小优化

dateFormat.format()方法本身返回的就是String类型,所以你原来的.toString()是多余的,可以直接去掉,让代码更简洁。

这样修改后,就能正确显示两位数字的月份了,比如1月会显示为01,10月显示为10,完全符合你的需求~

内容的提问来源于stack exchange,提问作者Umang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:40:53