Cómo convertir una hora de GMT a EST

Tengo un Date & time "20140508063630" en formato (yyyyMMddHHmmss). Quiero convertir este tiempo en zona horaria EST. ¿Cómo puedo hacerlo? Si hay alguna API para esta conversión, avísame. Gracias por adelantado.

try { DateFormat gmtFormat = new SimpleDateFormat(); TimeZone estTime = TimeZone.getTimeZone("EST"); gmtFormat.setTimeZone(estTime); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss"); sdf.setTimeZone(TimeZone.getTimeZone("GMT")); System.out.println("EST Time: " + gmtFormat.format(sdf.parse("20140508063630"))); } catch (ParseException e) { e.printStackTrace(); } 

Puesto que has etiquetado tu pregunta java-time, mereces una respuesta java.time .

  String dateAndTime = "20140508063630"; DateTimeFormatter parseFormatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss"); ZonedDateTime coralHarbourDateTime = LocalDateTime.parse(dateAndTime, parseFormatter) .atOffset(ZoneOffset.UTC) .atZoneSameInstant(ZoneId.of("America/Coral_Harbour")); System.out.println(coralHarbourDateTime); 

Esto imprime

 2014-05-08T01:36:30-05:00[America/Coral_Harbour] 

Hay un número de cosas a notar sin embargo:

  • También etiquetaste tu pregunta android. java.time parece estar llegando a Android, pero como de la escritura no está en la mayoría de los teléfonos con Android. No te desesperes, sin embargo, obtener el ThreeTenABP y utilizar las clases en Android.
  • Las clases SimpleDateFormat y SimpleDateFormat utilizadas en las otras respuestas están muy anticuadas, por lo que si su aplicación de Android está realizando algún trabajo con fechas y / o horas y / o zonas horarias, recomiendo ThreeTenABP y las clases modernas como el programador amigable y el futuro camino a seguir.
  • Usted pidió zona horaria EST y luego nos dio una fecha de 8 de mayo, que es en la hora de verano (DST) parte del año. En primer lugar, las abreviaturas de tres letras son peligrosas por ser ambiguas y en este caso no es una zona horaria completa, así que evítelas donde puedas. He resuelto el problema utilizando America / Coral_Harbour desde que leí que este lugar en particular utiliza EST todo el año, sin horario de verano. Si esto no era lo que usted pensaba, por favor proporcione una ubicación diferente. Si en cambio uso América / Montreal, 2014-05-08T02:36:30-04:00[America/Montreal] , por ejemplo, con la zona horaria compensada -4 en lugar de -5.

Cómo utilizar ThreeTenABP en el proyecto Android

Código siguiente para convertir la fecha de un huso horario a otro huso horario con cualquier formato de fecha

 { String parsedDate = null; try { SimpleDateFormat dbDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); dbDateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); Date date = dbUtcDateFormat.parse("20140508063630"); SimpleDateFormat userDateFormat = new SimpleDateFormat(yyyyMMddHHmmss); userDateFormat.setTimeZone(TimeZone.getTimeZone("EST")); parsedDate = userDateFormat.format(date); } catch (Throwable t) { logger.warn("Date Parse Faied : ", t); } return parsedDate; } 
  • Obtenga el país de un determinado huso horario de Java
  • Error de estudio de Android cuando agrega compatibilidad con java8
  • Cómo convertir el archivo jar en apk?
  • Cambiar el perfil de calidad en SonarQube.com
  • Comparar y combinar dos sonidos en android
  • ¿Qué es diferente de putSerializable y putParcelable en Java?
  • ¿Cómo funciona finish () en el evento OnClick?
  • NullPointerException durante el uso de TTS en CustomListview
  • Map.clear () vs nuevo Mapa: ¿Cuál será mejor?
  • IOS como sobre el efecto de desplazamiento en Android
  • IabHelper error de Android (NullPointerException) launchPurchaseFlow?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.