首页  >  文章  >  Java  >  为什么我的 Java 日期转换会导致月份不正确?

为什么我的 Java 日期转换会导致月份不正确?

DDD
DDD原创
2024-11-10 05:21:02291浏览

Why does my Java date conversion result in an incorrect month?

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

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