在使用SimpleDateFormat
解析字符串到日期对象时,我得到以下错误。
java.text.ParseException: 不可解析的日期: "星期二, 29 Mar 2016 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)没有被解析。
我怀疑问题是您的默认区域设置不是英语(也许是德语,这可以解释为什么周一有效(蒙塔格)而不是周二(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
上面的代码在 ideone 和我的机器上工作正常。