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.
fonte
2010-11-01 10:39:26
@Lei Ryan thanx per il supporto, pls controlla la mia domanda aggiornata –
@Paresh Mayani: vedere la mia risposta aggiornata –
@Lei Ryan ma caro so come fare l'analisi e la formattazione della data, ma voglio visualizzare UTC nel fuso orario locale –