http header "last-modified" 的格式错误的 joda 日期时间?

Malformatted joda datetime for http header "last-modified"?

我正在尝试解析一个简单的日期时间,但只是遇到了一个异常。为什么?

DateTimeFormat.forPatter("E, dd MMM yyyy HH:mm:ss Z").withLocale(Locale.GERMAN)
       .withOffsetParsed().parseDateTime("Fri, 08 Aug 2014 12:32:12 GMT");

结果:

java.lang.IllegalArgumentException: Invalid format: "Fri, 08 Aug 2014 12:32:12 GMT" is malformed at "i, 08 Aug 2014 12:32:12 GMT"
    at org.joda.time.format.DateTimeFormatter.parseDateTime(DateTimeFormatter.java:899)

您的示例使用 .withLocale(Locale.GERMAN),这意味着不仅 date fromat 本身,而且所有相关词都应使用德语语言环境。

所以 parseDateTime 方法将不会期望 "Friday" 和 "Fri",而是 "Freitag" 和 "Fre"。如果你想解析像 "Fri, 08 Aug 2014 12:32:12 GMT"

这样的字符串,我建议你坚持使用 Locale.ENGLISH 设置