Error de análisis de fecha y hora de conversión de Android (incluso intentó el tiempo joda)
Estoy analizando varias fuentes de noticias y el pubDate de cada elemento sigue el mismo formato:
Dom, 11 jun 2017 18:18:23 +0000
Lamentablemente, un feed no:
Sáb, 10 jun 2017 12:49:45 EST
He intentado analizar la fecha sin suerte usando la fecha de Java de los androides ySimpleDateFormat
:
try {
Calendar cal = Calendar.getInstance();
TimeZone tz = cal.getTimeZone();
SimpleDateFormat readDate = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
readDate.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = readDate.parse(rssDateTime);
SimpleDateFormat writeDate = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z");
writeDate.setTimeZone(tz);
parsedDate = writeDate.format(date);
} catch (ParseException e) {
e.printStackTrace();
}
Qué tiros y errores:
java.text.ParseException: Fecha no analizable: "Sábado, 3 de junio de 2017 19:53:09 EST" (en el desplazamiento 26)
También intenté hacer esto usando tiempo joda:
DateTime dtUTC = null;
DateTimeZone timezone = DateTimeZone.getDefault();
DateTimeFormatter formatDT = DateTimeFormat.forPattern("EEE, d MMM yyyy HH:mm:ss Z");
DateTime dtRssDateTime = formatDT.parseDateTime(rssDateTime);
DateTime now = new DateTime();
DateTime nowUTC = new LocalDateTime(now).toDateTime(DateTimeZone.UTC);
long instant = now.getMillis();
long instantUTC = nowUTC.getMillis();
long offset = instantUTC - instant;
dtUTC = dtRssDateTime.withZoneRetainFields(timezone);
dtUTC = dtUTC.minusMillis((int) offset);
String returnTimeDate = "";
returnTimeDate = dtUTC.toString(formatDT);
Lo que arroja un error:
Causado por: java.lang.IllegalArgumentException: Formato no válido: "Sábado, 10 de junio de 2017 12:49:45 EST" tiene un formato incorrecto en "EST"
¿Alguien encontró esto antes?