2012-11-20 18 views
8

Ho una stringa di data 2012-11-21 13:11:25 che ottengo dal database locale. Devo convertire questo in base alle impostazioni UTC e visualizzarlo su un particolare schermo. Quindi se il suo GMT+05:30 deve essere visualizzato come 2012-11-21 18:41:25 sullo schermo. Come posso fare questa conversione. Ho controllato alcune domande ma non ha funzionato.Convertire una stringa di data e ora in base al formato UTC

io sono in grado di ottenere un oggetto Date che restituisce qualcosa di simile Wed Nov 21 13:11:25 GMT+05:30 2012 dopo questo ho bisogno di ottenere il tempo come 18:41:25 e la data come 11-21-2012

Grazie in anticipo

+0

Puoi controllare: [Conversione] [1] [1]: http://stackoverflow.com/questions/2609360/converting-local-timestamp-to-utc-timestamp-in-java Spero che questo ti aiuti. – kittu88

risposta

14

tuo df e inputFmt deve utilizzare lo stesso formato.

Ma penso che si dovrebbe fare in questo modo:

Date myDate = new Date(); 

    Calendar calendar = Calendar.getInstance(); 
    calendar.setTimeZone(TimeZone.getTimeZone("UTC")); 
    calendar.setTime(myDate); 
    Date time = calendar.getTime(); 
    SimpleDateFormat outputFmt = new SimpleDateFormat("MMM dd, yyy h:mm a zz"); 
    String dateAsString = outputFmt.format(time); 
    System.out.println(dateAsString); 
1

Il modo migliore per ottenere stringa formattata della data in formato richiesto è

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US); 
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
String formatted = dateFormat.format(date); 
5

Get UTC di tanto attuale:

public String getCurrentUTC(){ 
     Date time = Calendar.getInstance().getTime(); 
     SimpleDateFormat outputFmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
     outputFmt.setTimeZone(TimeZone.getTimeZone("UTC")); 
     return outputFmt.format(time); 
} 
Problemi correlati