Cómo convertir el tiempo en AAAA-MM-DDTHH: mm: ss.SSSZ formato a la zona horaria por defecto?

El tiempo que estoy recibiendo está en el formato "2011-07-31T08: 16: 37.733Z". En realidad el Z debe ser el huso horario y luego ese tiempo se convierte en zona horaria local. ¿Cómo puedo convertir este tiempo a la zona horaria predeterminada ahora.

RFC 3339 describe un específico de ISO 8601 'perfil' para la fecha / hora de representación.

Si el uso de bibliotecas de código abierto de terceros es una opción, eche un vistazo a la clase de utilidad ISODateTimeFormat Joda-Time.

De lo contrario, si necesita desplegar su propio código, no es suficiente usar un SimpleDateFormat debido a la forma en que ISO 8601 / RFC 3339 representa información de zona horaria.

Si todo lo que necesitas analizar está en Z (Zulu o UTC), entonces es relativamente simple:

 String input = "2011-08-11T01:23:45.678Z"; TimeZone utc = TimeZone.getTimeZone("UTC"); SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"); f.setTimeZone(utc); GregorianCalendar cal = new GregorianCalendar(utc); cal.setTime(f.parse(input)); System.out.println(cal.getTime()); 

Debe imprimir "2011-08-11T01: 23: 45.678Z" en su zona horaria local.

Si necesita manejar zonas horarias arbitrarias en RFC 3339 entonces tendrá que ampliar lo anterior para analizar el designador de zona horaria y recuperar la correspondiente instancia de TimeZone Java. Eso no debería ser demasiado difícil si sólo son horas enteras +/- GMT, pero en caso de compensaciones no estándar puede que tenga que crear su propia instancia de SimpleTimeZone .

 private static SimpleDateFormat DATE_TIME_FORMAT=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'"); DATE_TIME_FORMAT.setTimeZone(TimeZone.getID()); //for example date=DATE_TIME_FORMAT.format(curDate); 
  • Obtención de la zona horaria en android
  • Obtenga el país de un determinado huso horario de Java
  • Obtener la zona horaria local del dispositivo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.