首页 >Java >java教程 >为什么我的 Java 日期转换产生错误的月份?

为什么我的 Java 日期转换产生错误的月份?

DDD
DDD原创
2024-11-06 08:14:021180浏览

Why is My Java Date Conversion Producing the Wrong Month?

Java 日期格式转换问题:月份渲染不正确

遇到的问题

尝试使用 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn