Parse RSS pubDate to Date объект в java
Как я могу проанализировать pubDate из RSS-канала для объекта Date в java.
Формат в ленте RSS:
Сб, 24 Apr 2010 14:01:00 GMT
То, что у меня есть на данный момент:
DateFormat dateFormat = DateFormat.getInstance();
Date pubDate = dateFormat.parse(item.getPubDate().getText());
Но этот код генерирует исключение ParseException с сообщением Unparseable date
Ответы
Ответ 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");
Кроме того, для неанглийских Locale
не забудьте использовать следующее при разборе дат на английском языке:
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);
Ответ 3
Для счастливчика, который может использовать Java 8 LocalDateTime:
LocalDateTime localDateTime = LocalDateTime.from(DateTimeFormatter.RFC_1123_DATE_TIME.parse("Sat, 24 Apr 2010 14:01:00 GMT"));