yyyy simple new example ejemplo dateformat change java string java-time zoneddatetime

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