使用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)未被解析。
答案 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并且在我的机器上。