Haciendo lo siguiente:
val zonedFormatter: DateTimeFormatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm z") ZonedDateTime.from(zonedFormatter.parse("31.07.2020 14:15 GMT"))me da:
"displayDate": "2020-07-31T14:15:00Z[GMT]"Lo quiero sin el [GMT]:
"displayDate": "2020-07-31T14:15:00Z"Puede usar DateTimeFormatter.ISO_OFFSET_DATE_TIME para formatear el ZonedDateTime analizado. Sin embargo, si espera que la fecha y hora siempre esté en UTC, le recomiendo que convierta el ZonedDateTime analizado en Instant .
Manifestación:
import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.util.Locale; public class Main { public static void main(String[] args) { DateTimeFormatter dtfInput = DateTimeFormatter.ofPattern("dd.MM.uuuu HH:mm z", Locale.ENGLISH); ZonedDateTime zdt = ZonedDateTime.from(dtfInput.parse("31.07.2020 14:15 GMT")); System.out.println(zdt.format(DateTimeFormatter.ISO_OFFSET_DATE_TIME)); System.out.println(zdt.toInstant()); } }Producción:
2020-07-31T14:15:00Z 2020-07-31T14:15:00Z Obtenga más información sobre la API de fecha y hora moderna * de Trail: Date Time . Consulte esta respuesta y esta respuesta para aprender a usar la API java.time con JDBC.
* Si está trabajando para un proyecto de Android y su nivel de API de Android aún no cumple con Java-8, verifique las API de Java 8+ disponibles a través de desugaring . Tenga en cuenta que Android 8.0 Oreo ya brinda soporte para java.time .