Dernière fois: Suite Java8 ~ Stream API ~ Deux fois avant: Java 8 ~ for Each et expression Lambda ~
Lors de la gestion de la date et de l'heure dans Java7, la rétention de la valeur était séparée de la classe Date et l'opération était séparée de la classe Calendar, mais des API pouvant être gérées collectivement dans Java8 ont été ajoutées.
LocalDateTime Date heure sans fuseau horaire
OffsetDateTime Date et heure avec décalage par rapport à UTC / Greenwich
ZonedDateTime Date / heure avec fuseau horaire
Instant Une valeur qui représente un certain temps 1970-01-01T 00:00:00 Il a un long qui représente les secondes de l'époque à partir de Z et un entier qui représente les nano secondes.
L'utilisation de LocalDateTime, OffsetDateTime et ZonedDateTime est presque la même, donc je vais expliquer avec LocalDateTime.
LocalDateTime current = LocalDateTime.now(); // -> 2018-03-03T12:09:50.875
LocalDateTime atMin = LocalDateTime.of(2018,3,3,12,1); // -> 2018-03-03T12:01
LocalDateTime atSec = LocalDateTime.of(2018,3,3,12,1,23); // -> 2018-03-03T12:01:23
LocalDateTime atNanoSec = LocalDateTime.of(2018,3,3,12,1,23,123456789); // -> 2018-03-03T12:01:23.123456789
Il existe une méthode statique qui peut être générée en spécifiant l'année, le mois, le jour, l'heure, la minute, la seconde et la nanoseconde. Les champs non spécifiés seront nuls Le mois peut être spécifié de 1 à 12, contrairement à la classe Calendar.
Pour convertir Date / Calendar en LocalDateTime, utilisez la méthode nouvellement ajoutée .toInstant ()
et passez par Instant.
Obtenez la valeur par défaut du système car vous devez spécifier le ZoneId
Calendar now = Calendar.getInstance();
Instant nowInstant = now.toInstant();
LocalDateTime fromCalendar = LocalDateTime.ofInstant(nowInstant, ZoneId.systemDefault());
Il existe une méthode pour obtenir chaque année, mois, jour, heure, minute, seconde, nanoseconde
LocalDateTime current = LocalDateTime.now(); // -> 2018-03-03T12:09:50.875
System.out.println(current.Hour()); // -> 12
System.out.println(current.getMonth()); // -> MARCH
System.out.println(current.getMonthValue()); // -> 3
La méthode getMonth ()
retourne un type d'énumération Mois qui représente le mois.
Jusqu'à Java 7, les opérations dont la classe Calendar était en charge peuvent être gérées directement avec LocalDateTime. Il existe une méthode qui renvoie LocalDateTime ajouté (plus) et soustrait (moins) pour chaque année, mois, jour, heure, minute, seconde et nanoseconde. ** La valeur de l'instance d'origine ne change pas **
LocalDateTime current = LocalDateTime.now(); // -> 2018-03-03T12:09:50.875
LocalDateTime plusMin = current.plusMinutes(10); // -> 2018-03-03T12:19:50.875
LocalDateTime plusMonth = current.plusMonths(2); // -> 2018-05-03T12:09:50.875
LocalDateTime minusYear = current.minusYears(1); // -> 2017-03-03T12:09:50.875
Utilisez la méthode ʻofPattern de la classe
DateTimeFormatter` pour formater la date et l'heure.
LocalDateTime current = LocalDateTime.now();
System.out.println(current.format(DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss.SSS"))); // -> 2018/03/03 12:09:50.875
Vous pouvez également utiliser des constantes définies au format ISO
LocalDateTime current = LocalDateTime.now();
System.out.println(current.format(DateTimeFormatter.ISO_DATE)); // -> 2018-03-03
System.out.println(current.format(DateTimeFormatter.ISO_LOCAL_TIME)); // -> 12:09:50.875
Recommended Posts