尝试使用 Java 将日期从一种格式转换为另一种格式时,某些用户遇到了月份渲染错误的问题。具体来说,当从“yyyy-mm-dd”等格式转换为“dd MMMM yyyy”时,结果月份显示为下个月(例如,“01/12/21”变为“01 一月 2021”而不是“01 2021 年 12 月”)。
此问题的根本原因在于 fromFormat 字符串规范不正确。在提供的示例中,fromFormat 定义为“yyyy-mm-dd”。但是,Java SimpleDateFormat 类中的“mm”表示分钟,而不是月份。要正确表示月份,格式说明符应为“MM”。
要解决此问题,应更新代码如下:
String dateStr = "2011-12-15"; String fromFormat = "yyyy-MM-dd"; String toFormat = "dd MMMM yyyy"; try { DateFormat fromFormatter = new SimpleDateFormat(fromFormat); Date date = fromFormatter.parse(dateStr); DateFormat toFormatter = new SimpleDateFormat(toFormat); String result = toFormatter.format(date); System.out.println(result); // Prints "15 December 2011" } catch (ParseException e) { e.printStackTrace(); }
以上是为什么我的 Java 日期转换产生错误的月份?的详细内容。更多信息请关注PHP中文网其他相关文章!