2010-11-01 23 views
7

Ricevo una stringa data/ora dal web nel formato "aaaa/mm/gg'T'HH: MM: SS'Z" "ed è in UTC.Visualizza data/ora UTC in data/ora in base al fuso orario corrente

Ora devo identificare il fuso orario corrente del dispositivo e poi convertire questa volta per il mio tempo locale ..

Come faccio lo faccio, pls mi suggeriscono !!

(FYI, attualmente, il tempo UTC è 10:25, nel tempo corrente India è 15:55)

risposta

13

Provate ad usare TimeZone.getDefault() invece di TimeZone.getTimeZone("GMT")

Da the docs:

... ottieni un TimeZone utilizzando getDefault che crea un TimeZone in base al fuso orario in cui è in esecuzione il programma .

MODIFICA: È possibile analizzare la data utilizzando SimpleDateFormat (c'è anche la documentazione sulla stringa di formato lì). Nel tuo caso, si vuole fare (non testato):

// 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); 

in alternativa, utilizzare due istanze separate di SimpleDateFormat, uno per originale e uno per il tempo target.

+0

@Lei Ryan thanx per il supporto, pls controlla la mia domanda aggiornata –

+1

@Paresh Mayani: vedere la mia risposta aggiornata –

+0

@Lei Ryan ma caro so come fare l'analisi e la formattazione della data, ma voglio visualizzare UTC nel fuso orario locale –

Problemi correlati