java - SimpleDateFormat 给出错误的格式输出
问题描述
我有一个函数可以输入一个像3-2020这样的字符串值。我想将此字符串解析为日期并将其格式更改为类似March-2020使用SimpleDateFormat
class. 这是我用于此任务的代码:
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。日期有很大的不同。为什么会这样?以及如何解决这个问题?
解决方案
请使用这个小 y 而不是 Y
Date today = new SimpleDateFormat("MM-yyyy").parse("04-2020");
System.out.println(new SimpleDateFormat("MMMM-yyyy").format(today));
推荐阅读
- asp.net - asp.net mvc (HttpWebRequest)WebRequest.Create Invalid URI 无法确定 URI 的格式
- python-2.7 - pysnmp not able to receive trap from different machine
- c# - 我如何更改猫类以支持我拥有的额外成员,以及如何制作一组猫
- macos - “标记和移动”Applescript 不再有效 (High Sierra)
- c# - 调用方法并将返回值分配给数组时,为什么C#在调用方法时使用数组引用?
- codeigniter - 使用本机 codeigniter 而不是 HTML 来选择日期
- xamarin.forms - StackLayout 按下事件
- python - 检查列表中的一个项目是否总是紧随其后 - Python
- awk - 用 NA 替换整个文件中的点而不改变数据结构
- html - 使用 CSS 在 Y 轴上滚动弹出对话框