yyyy parse convertir java parsing exception datetime simpledateformat

convertir - java.text.ParseException: Fecha inmanejable "aaaa-MM-dd''T''HH: mm: ss.SSSZ"-SimpleDateFormat



string to datetime java (2)

Agradecería cualquier ayuda para encontrar errores para esta excepción:

java.text.ParseException: Unparseable date: "2007-09-25T15:40:51.0000000Z"

y el siguiente código:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd''T''HH:mm:ss.SSSZ"); Date date = sdf.parse(timeValue); long mills = date.getTime(); this.point.time = String.valueOf(mills);

Lanza expcetion con Date date = sdf.parse(timeValue); .

timeValue = "2007-09-25T15:40:51.0000000Z"; como en la excepción

Gracias.


En javadoc también puede usar el patrón X para que coincida con una zona horaria ISO8601, que incluye el valor especial Z (UTC):

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd''T''HH:mm:ss.SSSSSSSX"); Date date = sdf.parse("2007-09-25T15:40:51.0000000Z");

Sin embargo, parece requerir un número exacto de caracteres de milisegundos en el patrón, que no es necesario para el patrón de caracteres ''Z'', y es bastante inconveniente. Creo que esto se debe a que la definición ISO8601 también incluye "horas de dos dígitos", que son solo números, por lo que el analizador no puede distinguirlos de los milisegundos anteriores.

Así que esta versión estaría bien para sellos de tiempo hasta una segunda precisión, menos para milisegundos.


Z representa el caracter de la zona horaria. Necesita ser citado:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd''T''HH:mm:ss.SSS''Z''");