Estoy teniendo un pequeño problema con una conversión de tiempo entre un teléfono Android (Nexus one) y un servidor de Java. Todo lo que he leído dice que son iguales, pero cuando estoy convirtiendo un sello de tiempo largo, parece que pierdo 1 hora (exactamente).Android Time vs Java Time
En concreto, si corro el código siguiente en el dispositivo androide Me da la siguiente salida
Código:
Calendar g = Calendar.getInstance();
g.setTimeInMillis(1340661899000L);
Log.d(TAG, g.getTime().toLocaleString());
de salida: 25 de Jun, 2012 6:04:59 PM
Lo cual creo que es correcto, pero cuando ejecuto exactamente el mismo código en un servidor de Java obtengo el mismo día pero 1 hora antes
Código:
Calendar g = Calendar.getInstance();
g.setTimeInMillis(1340661899000L);
System.out.println(g.getTime().toLocaleString());
Salida: 25-Jun-2012 05:04:59 PM
¿Alguien sabe qué podría estar causando esto? Tanto el servidor como el teléfono están ubicados en el mismo lugar (lo que no debería importar) y los relojes tanto en el servidor como en el teléfono coinciden
Probablemente no desee utilizar el tiempo localizado en la comunicación entre el cliente y el servidor, ya que no puede estar seguro de cuál será la configuración regional de tiempo en el cliente. –
el valor 1340661899000L no debería ser una hora local, solo quiero mostrar qué hora sería en el dispositivo timezone –
Esperar que el cliente y el servidor estén en la misma zona horaria/modo es lo que sugerí que evite. –