Java 日期格式转换问题:转换月份不正确
在 Java 中,在不同格式之间转换日期时,必须使用正确的日期格式说明符以确保准确的转换。在这种情况下,问题是由于输入日期格式字符串中的格式说明符不正确而引起的。
问题:
以下代码片段尝试将日期从将“yyyy-mm-dd”格式更改为“dd MMMM yyyy”格式。但是,生成的月份转换不正确。
String dateStr = "2011-12-15"; String fromFormat = "yyyy-mm-dd"; String toFormat = "dd MMMM yyyy"; try { DateFormat fromFormatter = new SimpleDateFormat(fromFormat); Date date = (Date) fromFormatter.parse(dateStr); DateFormat toformatter = new SimpleDateFormat(toFormat); String result = toformatter.format(date); } catch (ParseException e) { e.printStackTrace(); }
预期结果:
“2011 年 12 月 15 日”
实际结果:
“1 月 15 日2011"
格式说明符不正确:
问题是由于在输入日期格式字符串中使用“mm”引起的。在 Java SimpleDateFormat 中,“mm”代表分钟,而不是月份。要指定月份,正确的格式说明符是“MM”。
解决方案:
要解决此问题,只需更新输入日期格式字符串以使用“MM”几个月:
String fromFormat = "yyyy-MM-dd";
正确结果:
进行此更改后,代码片段将生成正确的月份转换:“15 December 2011”。
以上是为什么我的 Java 日期转换会导致月份不正确?的详细内容。更多信息请关注PHP中文网其他相关文章!