Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中解析RSS pubDate-to-Date对象_Java_Date_Rss_Date Format - Fatal编程技术网

在java中解析RSS pubDate-to-Date对象

在java中解析RSS pubDate-to-Date对象,java,date,rss,date-format,Java,Date,Rss,Date Format,如何在java中将pubDate从RSS提要解析为日期对象 RSS源中的格式: 2010年4月24日星期六格林威治标准时间14:01:00 我现在所拥有的: DateFormat dateFormat = DateFormat.getInstance(); Date pubDate = dateFormat.parse(item.getPubDate().getText()); 但是这段代码抛出一个ParseException,消息为UnparseableDate您可以使用以下类定义要解析的日

如何在java中将pubDate从RSS提要解析为日期对象

RSS源中的格式: 2010年4月24日星期六格林威治标准时间14:01:00

我现在所拥有的:

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

但是这段代码抛出一个ParseException,消息为UnparseableDate

您可以使用以下类定义要解析的日期格式:

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

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

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

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

对于能够使用Java 8 LocalDateTime的幸运儿:

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

这不仅容易,而且首先也不容易出错。谢谢PS
LocalDateTime
DateTimeFormatter
已在中向后移植到Java 6和Java 7。在索引25处无法解析“Tue,2019年3月12日10:05:52 EDT”和文本“Wed,2019年3月6日14:05:00 PST”时出现异常。@DanielDeLeón似乎同意:未处理北美地区名称和军事地区名称。我推测RSS在这里遵循RFC 822,并且允许PST、PDT、MST、MDT、CST、CDT、EST和EDT:。
LocalDateTime localDateTime = LocalDateTime.from(DateTimeFormatter.RFC_1123_DATE_TIME.parse("Sat, 24 Apr 2010 14:01:00 GMT"));