java - simple - ¿Cómo formatear un ZonedDateTime a una cadena?
simple date format java example (1)
Puede utilizar java.time.format.DateTimeFormatter. https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html
Aquí hay un ejemplo.
ZonedDateTime date = ZonedDateTime.now();
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date));
Quiero convertir un ZonedDateTime
a una String
en el formato de ("dd/MM/yyyy - hh:mm")
. Sé que esto es posible en otros tipos de Joda-Time, simplemente usando su toString("dd/MM/yyyy - hh:mm")
.... Pero esto no funciona con ZonedDateTime.toString()
.
¿Cómo puedo formatear un ZonedDateTime
a una String
?
EDITAR:
Intenté imprimir la hora en otra zona horaria y el resultado parece ser siempre el mismo:
ZonedDateTime date = ZonedDateTime.now();
ZoneId la = ZoneId.of("America/Los_Angeles");
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la);
// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date));
// same result as the previous one
// 24/02/2017 - 04:53
System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date2));
Y no estoy en la misma zona horaria que Los Ángeles.
EDIT 2:
Encontró cómo cambiar las zonas horarias:
// Change this:
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la); // incorrect!
// To this:
ZonedDateTime date2 = date.withZoneSameInstant(la);