53 votes

Comment formater une ZonedDateTime en String?

Je veux convertir un ZonedDateTime d'un String dans le format ("dd/MM/yyyy - hh:mm"). Je sais que c'est possible dans Joda-Time d'autres types, en utilisant seulement leur toString("dd/MM/yyyy - hh:mm")....Mais cela ne fonctionne pas avec ZonedDateTime.toString().

Comment puis-je formater un ZonedDateTime d'un String?


EDIT:

J'ai essayé d'imprimer l'heure dans un autre fuseau horaire et le résultat semble être toujours la même:

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

Et je ne suis pas dans le même fuseau horaire que Los Angeles.


EDIT 2:

Trouvé comment changer les fuseaux horaires:

// Change this:
ZonedDateTime date2 = date.of(date.toLocalDateTime(), la); // incorrect!
// To this:
ZonedDateTime date2 = date.withZoneSameInstant(la);

88voto

reos Points 4636

Vous pouvez utiliser java.time.format.DateTimeFormatter. https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

Ici il y a un exemple

 ZonedDateTime date = ZonedDateTime.now();

System.out.println(DateTimeFormatter.ofPattern("dd/MM/yyyy - hh:mm").format(date));
 

1voto

Tony Fraser Points 121

Merci beaucoup pour ci-dessus. Ici, c'est en scala où localDateTime.now toujours l'heure Zulu / UTC.

 import java.time.format.DateTimeFormatter
import java.time.LocalDateTime
import java.time.ZoneId

val ny = ZoneId.of("America/New_York")
val utc = ZoneId.of("UTC")
val dateTime = LocalDateTime.now.atZone(utc)

val nyTime = DateTimeFormatter.
      ofPattern("yyyy-MMM-dd HH:mm z").
      format(dateTime.withZoneSameInstant(ny))
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X