不知何故,我一遍又一遍地得到这个错误,并且不知道为什么。这是我的代码:
Date parseDate() {
String date = "2015, July 22, 00:30";
SimpleDateFormat formatter = new SimpleDateFormat("yyyy, MMM dd, HH:mm");
try {
return formatter.parse(date); // Here: Unparseable date: "2015, July 22, 00:30"
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
任何人都知道为什么会这样?怎么解决?
答案 0 :(得分:2)
如果您的默认语言环境在月份,工作日等方面具有不同的名称,则需要提供Locale。由于您只需将其添加到constructor即可,您可以使用以下内容:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy, MMM dd, HH:mm", Locale.US);
顺便说一句:如果您只想parse
字符串,则不需要使用四个 M 。但如果您希望将format
给定的Date
对象添加到字符串,则需要添加额外的 M 。
答案 1 :(得分:1)
问题在于本月,您使用的是MMM而不是MMMMM
SimpleDateFormat formatter = new SimpleDateFormat("yyyy, MMMMM dd, HH:mm");
答案 2 :(得分:0)
月份需要4 M而不是3:
SimpleDateFormat formatter = new SimpleDateFormat("yyyy, MMMM dd, HH:mm");
3是月份名称的缩写形式,因此“January”变为“Jan”,依此类推......