estoy convirtiendo una hora UTC a otra zona horaria, usando este método:la conversión a otras zonas horarias UTC
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parsed = format.parse("2011-03-01 15:10:37");
TimeZone tz = TimeZone.getTimeZone("America/Chicago");
format.setTimeZone(tz);
String result = format.format(parsed);
Así que la entrada es 2011-03-01 15:10:37
pero la salida de este (valor de resultado) es 2011-03-01 05:40:37
. Si bien parece estar apagado, y de acuerdo con this link, debe ser 2011-03-01 09:10:37
.
¿Qué estoy haciendo mal?
No olvides 'try {} catch (ParseException e) {}' alrededor de 'sourceFormat.parse()'. Además, para obtener la zona horaria local en la que se encuentra el teléfono, utiliza 'TimeZone.getDefault()' para que puedas convertir el UTC a la zona horaria local –
@hadi Eskandari Mate ¡me acabas de salvar! ¡Estaba arrancándome el pelo tratando de resolver este problema ...! Extraigo valores de nuestro servidor y los almacena en una base de datos antes de mostrarlos en la pantalla. Las fechas del servidor se almacenan en AEST (Australian Eastern Standard) y estaba teniendo su problema exacto en el que estaba usando la zona horaria predeterminada del sistema para interpretar el tiempo equivocado. Cuando intenté cambiar a otra fecha siempre estaba mal :) Solo necesitaba 'formater.setTimeZone (TimeZone.getTimeZone (RBApplication.adjustTimezoneAEST))' antes de mi línea de análisis. ¡Saludos, estaba en este problema por unas horas! – wired00
@ wired00 Feliz de escuchar que ayuda mate :) –