He estado luchando durante un tiempo con este código para una aplicación de Android y no puedo entenderlo. He leído y probado todas las soluciones que encontré en stackoverflow y otros lugares, pero todavía no tuve suerte.Conversión String-Date con nanosegundos
Lo que quiero hacer es tener una función para convertir una cadena como "17.08.2012 05:35:19:7600000"
a una fecha UTC y una función que toma un UTC date
y lo convierte en una cadena como esa.
String value = "17.08.2012 05:35:19:7600000";
DateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss:SSSSSSS");
try
{
Date today = df.parse(value);
System.out.println("Today = " + df.format(today) + " " + today.toGMTString());
}
catch (ParseException e)
{
e.printStackTrace();
}
Esto resultados en: Today = 17.08.2012 07:41:59:0000000 17 Aug 2012 04:41:59 GMT
cuales son incorrectos.
He intentado configurar SDF's timezone
a UTC
, sin suerte.
Otra cosa que noté: si hago df.setLenient(false);
Me da: java.text.ParseException: Unparseable date: "17.08.2012 05:35:19:7600000"
.
Si alguien me puede dar algunas explicaciones/código de muestra, estaría muy agradecido. Gracias de antemano
Gracias! Después de setTimeZone (TimeZone.getTimeZone ("UTC")) todo estuvo bien. En cuanto a los milisegundos, creo que los restableceré a 0. No creo que importe en mi caso. El ejemplo que di fue una respuesta de un servidor, como hora UTC ahora, tendré que ver por qué devuelve esos milisegundos. – Rhadoozooz
¡Me alegro de que hayas descubierto el problema! ¡Buena suerte! :) – Eric
@Eric BTW buena explicación, apreciable. –