首页 > 解决方案 > SimpleDateFormat 给出错误的格式输出

问题描述

我有一个函数可以输入一个像3-2020这样的字符串值。我想将此字符串解析为日期并将其格式更改为类似March-2020使用SimpleDateFormatclass. 这是我用于此任务的代码:

public String getCurrentMonth(String day) throws ParseException {
    Date today = new SimpleDateFormat("MM-YYYY").parse(day);
    return new SimpleDateFormat("MMMM-YYYY").format(today);
}

但它给出了一个非常不同的输出字符串。当输入提供为4-2020时,它返回值为December-2020。该today变量的值为Sun Dec 29 00:00:00 GMT+05:30 2019。日期有很大的不同。为什么会这样?以及如何解决这个问题?

标签: javaandroidsimpledateformat

解决方案


请使用这个小 y 而不是 Y

Date today = new SimpleDateFormat("MM-yyyy").parse("04-2020");
System.out.println(new SimpleDateFormat("MMMM-yyyy").format(today));

推荐阅读