2010-11-01 32 views
7

Obtengo una cadena de fecha y hora de la web en el formato "aaaa/mm/dd'T'HH: MM: SS'Z ' "y está en UTC.Mostrar fecha/hora UTC en fecha/hora de acuerdo con la zona horaria actual

ahora tengo que identificar la zona horaria actual del dispositivo y luego convertir este tiempo que mi horario local ..

¿Cómo lo hago, pls me sugieren !!

(Para su información, la actualidad, la hora UTC es 10:25, en el tiempo actual de la India es 15:55)

Respuesta

13

Trate de usar TimeZone.getDefault() en lugar de TimeZone.getTimeZone("GMT")

De the docs:

... obtienes un TimeZone usando getDefault que crea un TimeZone basado en la zona horaria donde se está ejecutando el programa .

EDITAR: Puede analizar la fecha usando SimpleDateFormat (también está la documentación en la cadena de formato allí). En su caso, usted quiere hacer (no probado):

// note that I modified the format string slightly 
SimpleDateFormat fmt = new SimpleDateFormat("yyyy/MM/dd'T'HH:mm:ss'Z'"); 
// set the timezone to the original date string's timezone 
fmt.setTimeZone(TimeZone.getTimeZone("GMT")); 
Date date = fmt.parse("1998/12/21T13:29:31Z", new ParsePosition(0)); 

// then reset to the target date string's (local) timezone 
fmt.setTimeZone(TimeZone.getDefault()); 
String localTime = fmt.format(date); 

otra alternativa es utilizar dos instancias independientes de SimpleDateFormat, uno para la original y una para el tiempo objetivo.

+0

@Lei Ryan gracias por el apoyo, los pls comprueban mi pregunta actualizado –

+1

@Paresh Mayani: ver mi respuesta actualizada –

+0

@Lei Ryan, pero querida i sabe cómo hacer el análisis y el formato de la fecha, pero desea mostrar UTC en la zona horaria local –

Cuestiones relacionadas