2010-04-24 25 views
33

¿Cómo puedo analizar una pubDate desde una fuente RSS a un objeto Date en java?Parse RSS objeto pubDate to Date en java

El formato de la fuente RSS: Sab 24 Abr 2010 14:01:00 GMT

Lo que tengo en la actualidad

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

Pero este código, se emite una ParseException con el mensaje fecha unparseable

Respuesta

63

se puede definir el formato de fecha que está tratando de analizar, utilizando la clase 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"); 

Además, para los no-Inglés Locale 's, asegúrese de usar el siguiente al analizar las fechas en Inglés:

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

Si es necesario tener una fecha compatible con RFC822, intente esto:

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

Para el afortunado que puede utilizar el LocalDateTime Java 8:

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

que no sólo es más fácil, es, ante todo, menos errorprone. Gracias. PS 'LocalDateTime' y' DateTimeFormatter' han sido transferidos a Java 6 y 7 en [ThreeTen Backport] (http://www.threeten.org/threetenbp/). –