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

Der*_*erk 37 java rss date date-format

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

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

我现在所拥有的:

DateFormat dateFormat = DateFormat.getInstance();
Date pubDate = dateFormat.parse(item.getPubDate().getText());
Run Code Online (Sandbox Code Playgroud)

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

Joã*_*lva 64

您可以使用以下类定义要尝试解析的日期格式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");
Run Code Online (Sandbox Code Playgroud)

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

new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)


小智 13

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

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


Bru*_*ard 6

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

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