No pude encontrar esto en ninguna parte. Busco algunos JSON de una API que devuelve fechas JSON estándar. Se puede ver el formato mediante la ejecución de este código en una consola de JavaScript:Fecha JSON a la fecha de Java?
> new Date().toJSON();
"2010-10-27T11:58:22.973Z"
Bueno, en realidad, la API Estoy trabajando con no devuelve la parte de milisegundos, y en ocasiones se vuelve una zona horaria en lugar de Z
, por lo fechas pueden parecerse a cualquiera de estos:
2010-10-27T11:58:22Z
2010-10-27T11:58:22+03:00
El análisis de este tipo de fechas es algo engorroso. ¿Hay alguna forma de analizar este tipo de fechas, usando org.json
?
Mi solución actual es:
public static Date parseDateTime(String dateString) {
if (dateString == null) return null;
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ssZ");
if (dateString.contains("T")) dateString = dateString.replace('T', ' ');
if (dateString.contains("Z")) dateString = dateString.replace("Z", "+0000");
else
dateString = dateString.substring(0, dateString.lastIndexOf(':')) + dateString.substring(dateString.lastIndexOf(':')+1);
try {
return fmt.parse(dateString);
}
catch (ParseException e) {
Log.e(Const.TAG, "Could not parse datetime: " + dateString);
return null;
}
}
Uf!
En un comentario más abajo, se mencionó que va a implementar para Android. ¿Has probado el 'ZZZZZ' de Android' SimpleDateFormat''? –