Unparseable Date Exception SimpleDateFormat

时间:2016-07-13 04:54:28

标签: java parsing datetime simpledateformat timezone-offset

使用SimpleDateFormat解析字符串到日期对象时,我遇到错误。

  

java.text.ParseException:Unparseable date:“Tue,2016年3月29日11:27:37 -0400”

我用来解析日期的代码是:

DateFormat df2 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");

我可以解析Mon, 13 Jun 2016 11:48:54 +0300 等日期。

我注意到有一件事,即+ve时区(+0300)的日期被解析,但-ve时区(-0400)未被解析。

1 个答案:

答案 0 :(得分:1)

我怀疑问题是你的默认语言环境不是英语(也许是德语,这可以解释为什么Mon工作(Montag)而不是Tue(Dienstag)?)。

只需将ENGLISH指定为区域设置:

DateFormat df2 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
Date date = df2.parse("Tue, 29 Mar 2016 11:27:37 -0400");
System.out.println(date); //prints Tue Mar 29 15:27:37 GMT 2016

上面的代码工作正常on ideone并且在我的机器上。