Je n'ai brièvement résumé que les éléments susceptibles d'être fréquemment utilisés dans la pratique concernant l'API de date / heure Java 8.
LocalDate a = LocalDate.now();
System.out.println(a); // YYYY-MM-DD
LocalDate b = LocalDate.of(2017, 10, 17);
System.out.println(b); // 2017-10-17
LocalDate c = LocalDate.parse("2017-10-17");
System.out.println(c); // 2017-10-17
System.out.println(c.getYear()); // 2017
System.out.println(c.getMonthValue()); // 10
System.out.println(c.getDayOfMonth()); // 17
System.out.println(c.getDayOfWeek()); // "TUESDAY"
System.out.println(c.getDayOfWeek().getValue()); // 2
LocalDate d = c.plusDays(30);
System.out.println(c); // 2017-10-17 * Puisqu'elle est immuable, la valeur d'origine ne change pas.
System.out.println(d); // 2017-11-16
LocalTime a = LocalTime.of(0, 1, 2);
System.out.println(a); // 00:01:02
LocalTime b = a.plusHours(12);
System.out.println(a); // 00:01:02 * Puisqu'elle est immuable, la valeur d'origine ne change pas
System.out.println(b); // 12:01:02
--Utilisez à la fois LocalDate / LocalTime / LocalDateTime dans la méthode format
Formateur | Exemple |
---|---|
BASIC_ISO_DATE | 20171017 |
ISO_LOCAL_DATE | 2017-10-17 |
ISO_LOCAL_TIME | 10:15:30 |
LocalDateTime dateTime = LocalDateTime.of(2017, 10, 17, 10, 15, 30);
System.out.println(dateTime.format(DateTimeFormatter.BASIC_ISO_DATE)); // 20171017
System.out.println(dateTime.format(DateTimeFormatter.ISO_LOCAL_DATE)); // 2017-10-17
System.out.println(dateTime.format(DateTimeFormatter.ISO_LOCAL_TIME)); // 10:15:30
LocalDateTime start = LocalDateTime.of(2017, 10, 17, 0, 0);
LocalDateTime end = LocalDateTime.of(2017, 11, 17, 0, 0);
Duration d = Duration.between(start, end);
System.out.println(d.toDays()); //Le 31)
System.out.println(d.toHours()); //744 (heures)
** (Référence et mise en garde) ** Java 8 dispose également d'une API appelée ** java.time.Period class ** pour obtenir la durée. Cependant, cette API calcule la période au format "○ année, ○ mois et ○ jour". Si vous l'utilisez dans le but d'acquérir les soi-disant «jours», il sera différent du résultat attendu, vous devez donc faire attention à ne pas le mal comprendre.
LocalDate start = LocalDate.of(2017, 10, 17);
LocalDate end = LocalDate.of(2017, 11, 17);
Period p = Period.between(start, end);
System.out.println(p.getMonths()); //1 mois
System.out.println(p.getDays()); //0th (Note) Bug si le résultat attendu est supposé être "31st"
Recommended Posts