在 java 中解析 RSS pubDate to Date 对象

2022-09-01 02:58:12

如何将 pubDate 从 RSS 源解析为 Java 中的 Date 对象。

RSS 源中的格式: 星期六, 24 四月 2010 14:01:00 GMT

我现在拥有:

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

但是此代码会抛出一个 ParseException,其中包含消息“无法解析的日期”


答案 1

您可以使用类 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");

此外,对于非英语区域设置,在解析英语日期时,请确保使用以下方法:

new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);

答案 2

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

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