40

如何将 RSS 提要中的 pubDate 解析为 Java 中的 Date 对象。

RSS 提要中的格式:2010 年 4 月 24 日星期六 14:01:00 GMT

我目前拥有的:

DateFormat dateFormat = DateFormat.getInstance();
Date pubDate = dateFormat.parse(item.getPubDate().getText());

但是这段代码抛出了一个 ParseException 消息 Unparseable date

4

3 回答 3

66

您可以使用类定义您尝试解析的日期格式SimpleDateFormat

DateFormat formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz");
Date date = formatter.parse("Sat, 24 Apr 2010 14:01:00 GMT");

此外,对于非英语Locale的,请务必在用英语解析日期时使用以下内容:

new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);
于 2010-04-24T18:18:48.477 回答
14

如果您需要符合 RFC822 的日期,请尝试以下操作:

DateFormat dateFormatterRssPubDate = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH);
于 2011-10-28T09:08:14.040 回答
7

对于可以使用 Java 8 LocalDateTime 的幸运者:

LocalDateTime localDateTime = LocalDateTime.from(DateTimeFormatter.RFC_1123_DATE_TIME.parse("Sat, 24 Apr 2010 14:01:00 GMT"));
于 2016-08-09T07:03:34.467 回答