SimpleDateFormat的不一致解析错误
问题描述:
示例代码不言自明:SimpleDateFormat的不一致解析错误
private void parse() throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yyyy");
Date started = sdf.parse("Sep/22/2004");
// this triggers: java.text.ParseException: Unparseable date: "May/23/2010"
Date ended = sdf.parse("May/23/2010");
}
不知道还有什么我可以添加到这一点。我试图解析“MMM/dd/yyyy”日期,并且我得到不一致的异常行为。这感觉就像我失去了一些明显的东西。
答
这当然与语言环境有关。添加以下内容:
sdf.setDateFormatSymbols(DateFormatSymbols.getInstance(Locale.ENGLISH));
或可替代简单地用语言环境声明它:
SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yyyy", Locale.ENGLISH);
什么是语言环境? – Guillaume
哦,天哪,当然。 – habitats
@habitats或简单地说:'DateFormat sdf = new SimpleDateFormat(“MMM/dd/yyyy”,Locale.english);'如果你不想改变一般设置。 – assylias