SimpleDateFormat 不解析

SimpleDateFormat not parsing

有一百万个关于 SimpleDateFormat class 的线程,我也遇到了麻烦:

这是我的小测试代码

SimpleDateFormat dateReader = new SimpleDateFormat("EEE, dd LLL YYYY HH:mm:ss Z", Locale.ENGLISH);
Calendar date = Calendar.getInstance();
try {
    date.setTime(dateReader.parse(dateReader.format(date.getTime())));
} catch (ParseException e) {
    e.printStackTrace();
}

有人可能会认为,正确格式的当前日期将被正确解析,这将 运行 顺利通过,但我得到一个异常 java.text.ParseException: Unparseable date: "Fri, 11 Aug 2017 15:44:48 +0200"

最后,我只想解析 "Thu, 03 Aug 2017 20:10:00 +0200" 这样的日期。我相信我有正确的模式。

我现在不知道,这是怎么回事。

编辑
与其他问题的 区别 是使用的模式。如果您看到答案,则表明模式使用不正确,而大多数其他问题的模式完全错误或局部错误。那里可能有重复的地方——但在这些许多类似命名的问题中,将其作为自己的问题可能会更快。

我认为您的问题在于使用 'yyyy' 而不是 'YYYY' 的年份格式。

SimpleDateFormat dateReader = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
try {
  dateReader.parse("Thu, 03 Aug 2017 20:10:00 +0200");
} catch (ParseException e) {
  e.printStackTrace();
}