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”日期,并且我得到不一致的异常行为。这感觉就像我失去了一些明显的东西。

+4

什么是语言环境? – Guillaume

+0

哦,天哪,当然。 – habitats

+1

@habitats或简单地说:'DateFormat sdf = new SimpleDateFormat(“MMM/dd/yyyy”,Locale.english);'如果你不想改变一般设置。 – assylias

这当然与语言环境有关。添加以下内容:

sdf.setDateFormatSymbols(DateFormatSymbols.getInstance(Locale.ENGLISH)); 

或可替代简单地用语言环境声明它:

SimpleDateFormat sdf = new SimpleDateFormat("MMM/dd/yyyy", Locale.ENGLISH);