SimpleDateFormat 给出错误格式的输出
SimpleDateFormat giving a wrong formatted output
我有一个函数可以输入一个字符串值,例如 3-2020。我想将此字符串解析为日期,并使用 SimpleDateFormat
class 将其格式更改为类似 March-2020 的格式。这是我用于此任务的代码:
public String getCurrentMonth(String day) throws ParseException {
Date today = new SimpleDateFormat("MM-YYYY").parse(day);
return new SimpleDateFormat("MMMM-YYYY").format(today);
}
但它给出了一个非常不同的输出字符串。当输入为 4-2020 时,它 returns 的值为 December-2020。 today
变量的值为 Sun Dec 29 00:00:00 GMT+05:30 2019。日期差异很大。为什么会这样?以及如何解决这个问题?
请用这个小y代替Y
Date today = new SimpleDateFormat("MM-yyyy").parse("04-2020");
System.out.println(new SimpleDateFormat("MMMM-yyyy").format(today));
Y
是星期年的格式。您似乎打算使用 y
,这是年份的格式:
public String getCurrentMonth(String day) throws ParseException {
Date today = new SimpleDateFormat("MM-yyyy").parse(day);
return new SimpleDateFormat("MMMM-yyyy").format(today);
}
我有一个函数可以输入一个字符串值,例如 3-2020。我想将此字符串解析为日期,并使用 SimpleDateFormat
class 将其格式更改为类似 March-2020 的格式。这是我用于此任务的代码:
public String getCurrentMonth(String day) throws ParseException {
Date today = new SimpleDateFormat("MM-YYYY").parse(day);
return new SimpleDateFormat("MMMM-YYYY").format(today);
}
但它给出了一个非常不同的输出字符串。当输入为 4-2020 时,它 returns 的值为 December-2020。 today
变量的值为 Sun Dec 29 00:00:00 GMT+05:30 2019。日期差异很大。为什么会这样?以及如何解决这个问题?
请用这个小y代替Y
Date today = new SimpleDateFormat("MM-yyyy").parse("04-2020");
System.out.println(new SimpleDateFormat("MMMM-yyyy").format(today));
Y
是星期年的格式。您似乎打算使用 y
,这是年份的格式:
public String getCurrentMonth(String day) throws ParseException {
Date today = new SimpleDateFormat("MM-yyyy").parse(day);
return new SimpleDateFormat("MMMM-yyyy").format(today);
}