web-dev-qa-db-ja.com

javaのRSS pubDate to Dateオブジェクトを解析します

RSSフィードからJavaでDateオブジェクトにpubDateを解析するにはどうすればよいですか。

RSSフィードの形式:2010年4月24日、土曜日14:01:00 GMT

現在私が持っているもの:

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

しかし、このコードはメッセージUnparseable dateでParseExceptionをスローします

37
Derk

クラス 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 'sの場合、英語で日付を解析するときは、必ず次を使用してください。

new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss zzz", Locale.ENGLISH);
64
João Silva

RFC822準拠の日付が必要な場合は、これを試してください。

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

Java 8 LocalDateTimeを使用できる幸運な人のために:

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