9
Calendar API
Sebastian Eidecker edited this page 2019-11-10 16:32:10 +00:00

Deklaration

Drei verschiedene Klassen für Datum, Zeit und Datum mit Zeit.

LocalDate date = LocalDate.of(2020, Month.APRIL, 14); // Datum ohne Uhrzeit
LocalTime time = LocalTime.of(12, 45); // Uhrzeit ohne Datum
LocalDateTime dateTime = LocalDateTime.of(date, time); // Datum mit Uhrzeit

Wichtige Eigenschaften

  • Immutable: Keine direkten Änderungen möglich, es werden immer neue Objekte zurückgegeben
  • Factory-Methoden, private Konstruktoren: LocalDate, LocalTime und LocalDateTime müssen über Factory-Methoden erzeugt werden, haben private Konstruktoren.

Formatierte Ausgabe

  • Formatierung per DateTimeFormatter
  • Erzeugung per Factory
    • DateTimeFormatter dateFormatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM) // Datumsteil
    • DateTimeFormatter timeFormatter = DateTimeFormatter.ofLocalizedTime(FormatStyle.MEDIUM) // Zeitteil
    • DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofLocalizedDateTime(FormatStyle.MEDIUM) // Datum und Zeit
  • Formatierte Ausgabe: dateTimeFormatter.format(dateTime), timeFormatter.format(time)
    • Eine Formatter-Klasse für alle Typen, Methoden und FormatStyle bestimmen, ob Datum und/oder Zeit ausgegeben werden und exaktes Aussehen
    • Vorsicht: Bei Verwendung unbekannter Felder UnsupportedTemporalTypeException
  • Eigene Formatierung:
    • DateTimeFormatter.ofPattern("MM dd yyyy, HH:mm")
    • Vorsicht: Bei Verwendung unbekannter Felder UnsupportedTemporalTypeException
    • Wichige Felder
      • MMMM: Monat (M = 1, MM = 01, MMM = Jan, MMMM = Januar)
      • dd: Tag des Monats, 1-based
      • ,, : geben diese Zeichen aus
      • yyyy: Jahr, auch yy möglich für kürzere Darstellung
      • hh: Stunde
      • mm: Minute

Datum parsen

  • Definition des Formats per DateTimeFormatter
  • Parsen mit gewünschter Datums-Klasse und optional Angabe des Formatters. Wenn kein Formatter angegeben, dann ISO
  • Formatter muss zum zu parsenden String passen, aber nicht zwingend zum zu erzeugenden Format. Es muss aber alle Informationen enthalten, das Objekt zu erzeugen
  • Bei Fehlern RuntimeException