Подтвердить что ты не робот

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

4b9b3361

Ответ 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"));