Convertire UTC in ora locale corrente

Sto scaricando alcuni dati JSON da un webservice. In questo JSON ho alcuni valori Date / Time. Tutto in UTC. Come posso analizzare questa string di date in modo che l'object Data risultato sia nell'attuale locale?

Ad esempio: il server restituito "2011-05-18 16:35:01" e il mio dispositivo dovrebbe ora essere visualizzato "2011-05-18 18:35:01" (GMT +2)

  • Barra di avanzamento di Android AsyncTask
  • Come identificare lo stato di squillo della chiamata in output in android
  • Listview con edittext - scorrimento automatico su "successivo"
  • Esempio: la comunicazione tra attività e servizio che utilizza la messaggistica
  • Android KitKat 4.4 Hangouts non è in grado di gestire l'invio di intenti SMS
  • Impostazione dei parametri Layout in android
  • Il mio codice attuale:

    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date myDate = simpleDateFormat.parse(rawQuestion.getString("AskDateTime")); 

  • Layout personalizzato Android
  • Come posso impostare in modo programmato android: button = "@ null"?
  • Blocco verso il basso ("modalità di chiosco") Dispositivi Android
  • Android Google Maps v2 - Aggiungere l'object a marker
  • Miscelazione dell'additivo senza glClear
  • Disegno di materiale di Android
  • 5 Solutions collect form web for “Convertire UTC in ora locale corrente”

    Ha un metodo fuso fuso impostato:

     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); Date myDate = simpleDateFormat.parse(rawQuestion.getString("AskDateTime")); 

    tutto fatto!

    Quindi vuoi informare SimpleDateFormat del fuso orario UTC:

     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); TimeZone utcZone = TimeZone.getTimeZone("UTC"); simpleDateFormat.setTimeZone(utcZone); Date myDate = simpleDateFormat.parse(rawQuestion.getString("AskDateTime")); 

    Per visualizzare:

     simpleDateFormat.setTimeZone(TimeZone.getDefault()); String formattedDate = simpleDateFormat.format(myDate); 

    La tua string myUTC = "2016-02-03T06: 41: 33.000Z"

     SimpleDateFormat existingUTCFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); SimpleDateFormat requiredFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try{ Date getDate = existingFormat.parse(myUTC); String mydate = requiredFormat.format(getDate) } catch(ParseException){ } 
     public static String toLocalDateString(String utcTimeStamp) { Date utcDate = new Date(utcTimeStamp); DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); df.setTimeZone(TimeZone.getTimeZone("PST")); return df.format(utcDate); } 

    Saluti!

    Un object Date è sempre un wrapper attorno ai millisecondi dall'epoca 0 in UTC. Non rappresenta mai il tempo locale.

    Ciò significa che è necessario creare un secondo SimpleDateFormatter che crea una string di visualizzazione in tempo locale.

    Modifica: @Op. Si noti che la class prefissata per la formattazione data / ora in Android è java.text.DateFormat

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.