Für die Java 8-Datums- / Uhrzeit-API habe ich nur die Dinge kurz zusammengefasst, die in der Praxis wahrscheinlich verwendet werden.
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 * Da es unveränderlich ist, ändert sich der ursprüngliche Wert nicht.
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 * Da es unveränderlich ist, ändert sich der ursprüngliche Wert nicht
System.out.println(b); // 12:01:02
--Verwenden Sie sowohl LocalDate / LocalTime / LocalDateTime in der Formatmethode
Formatierer | Beispiel |
---|---|
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()); //Der 31.)
System.out.println(d.toHours()); //744 (Stunden)
** (Hinweis & Achtung) ** Java 8 hat auch eine API namens ** java.time.Period class **, um die Dauer abzurufen. Diese API berechnet jedoch den Zeitraum im Format "○ Jahr, ○ Monat und ○ Tag". Wenn Sie es zum Zwecke des Erwerbs der sogenannten "Tage" verwenden, unterscheidet es sich vom erwarteten Ergebnis, sodass Sie darauf achten müssen, es nicht falsch zu verstehen.
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 Monat
System.out.println(p.getDays()); //0. (Hinweis) Es ist fehlerhaft, wenn das erwartete Ergebnis als "31." angenommen wird.
Recommended Posts