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);