Cómo convertir hora UTC a alguna otra zona horaria ("CST", "IST")

En mi servidor de aplicaciones Android devolverá una fecha UTC en el formato siguiente ( yyyy-MM-dd HH:mm:ss ) 24 horas y necesito convertir esos tiempos en el TimeZone del usuario por ejemplo CST , IST .

Hice el siguiente código, pero sé que es correcto o no, por favor ayúdame a hacer la conversión de zona horaria de manera correcta.

Tengo la fecha UTC como cadena json y la conversión en el formato de zona horaria del usuario y mostrar la parte de Android

 private static Date utcDate; private static DateFormat expireFormat = new SimpleDateFormat( "yyyy-MM-dd HH:mm:ss"); try { expireFormat.setTimeZone(TimeZone.getTimeZone("UTC")); utcDate = expireFormat.parse("2014-04-01 10:32:00"); System.out.println(TimeZone.getDefault().getID()); expireFormat.setTimeZone(TimeZone.getTimeZone(TimeZone.getDefault().getID())); System.out.println(expireFormat.format(utcDate)); } catch (ParseException e) { e.printStackTrace(); } output of the code: Asia/Calcutta 2014-04-01 16:02:00 

El enfoque general está bien si una cadena con formato nuevo es realmente lo que está tratando de obtener.

Hay algunos problemas aunque

  1. SimpleDateFormat no es una clase de threadsafe. ¡Configurarlo en un campo estático dentro de un servidor es un problema!

  2. Igual que # 1 con respecto a usar un campo estático para sostener el objeto de la fecha intermedio.

  3. ¿Es "CST" hora estándar de China? Hora estándar central (EE.UU. o Australia)? ¿Hora estándar de Cuba? Las abreviaturas de tres letras TimeZone son malas noticias en general. Trate de usar un Olson Name o Alias ​​si es posible.

  4. ¿Es este el lado del servidor o el androide? Si se trata de un servidor, probablemente podría beneficiarse de la nueva API Java 8 para el manejo de DateTime.

  • Lona de Android, múltiples rutas con diferentes cantidades de zoom
  • OOD y pasando la actividad como un parámetro a los constructores de otras clases
  • Extendiendo AsyncTask <Void, Void, Void>
  • Para Android, ¿debo usar el tipo de datos float más a menudo para mi juego, o simplemente lanzar para flotar al dibujar?
  • Android Apk decompilación parece fácil
  • ¿Cómo configurar IntelliJ para Mac para mostrar la documentación de Java y Android dentro del editor (offline, no en línea)?
  • Emulador de Android no se carga en netbeans
  • Cambiar Google Place Picker Appbar Text Color
  • Error al actualizar el inventario. Facturación en la aplicación
  • cómo generar NONCE e imprimirlo en el lado del cliente en ANDROID
  • ¿Cómo puedo configurar ViewPager layoutParams de forma programática?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.