在Java中将RSS pubDate解析为Date对象

时间:2010-04-24 18:00:26

标签: java date rss date-format

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

RSS Feed中的格式: 周六,2010年4月24日14:01:00 GMT

我现在所拥有的:

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

但是这段代码抛出了一个带有Unparseable date

消息的ParseException

3 个答案:

答案 0 :(得分:65)

您可以使用班级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);

答案 1 :(得分:13)

如果您需要符合RFC822标准的日期,请尝试以下方法:

DateFormat dateFormatterRssPubDate = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z", Locale.ENGLISH);

答案 2 :(得分:6)

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

LocalDateTime localDateTime = LocalDateTime.from(DateTimeFormatter.RFC_1123_DATE_TIME.parse("Sat, 24 Apr 2010 14:01:00 GMT"));