Pregunta

Tengo fechas en el formato 2008-12-23T00: 00: 00Z . Esto se parece mucho a un formato ISO 8601 con una zona horaria Zulu (UTC). Pensé que el siguiente código lo analizaría (usando commons-lang ):

String pattern = DateFormatUtils.ISO_DATETIME_TIME_ZONE_FORMAT.getPattern();
Date d = DateUtils.parseDate(dateToParse, new String[] { pattern });

Si tomo el mismo patrón ( yyyy-MM-dd'T'HH: mm: ssZZ ) pero elimino la zona horaria, funciona.

¿Sabes cómo puedo reconocer la zona horaria Zulu? Solo tengo acceso a Java 1.4 y Jakarta commons-lang. No tengo Joda Time para mí ...

¿Fue útil?

Solución

Parece un error en FastDateFormat de commons-lang. Cuéntales sobre eso, y deberías conseguir una solución eventualmente. Hasta entonces, puedes intentar preprocesar las fechas y reemplazar 'Z' con '+00'

Otros consejos

Creo que commons-lang está usando DateFormat o SimpleDateFormat incorporado en java, que lanza una excepción ParseException para tu fecha. Si todas las cadenas de entrada terminan con la Z final, puede usar esto:


java.text.DateFormat df = new java.text.SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'");
// explicitly set timezone of input if needed
df.setTimeZone(java.util.TimeZone.getTimeZone("Zulu"));
java.util.Date date = df.parse("2008-12-23T00:00:00Z");

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top