Menu
CoddyTech

Datumsformatierung

Teil des Abschnitts Logik & Ablauf der Java-Journey von Coddy. Lektion 58 von 59.

DateTimeFormatter in Java ermöglicht es dir, Datums- und Zeitangaben in verschiedenen Mustern zu formatieren. Es kann mit LocalDate, LocalTime und LocalDateTime verwendet werden.

Erstelle einen Formatierer mit einem bestimmten Muster:

DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");

Formatiere ein Datum mit dem Formatierer:

LocalDate date = LocalDate.of(2024, 3, 15);
String formatted = date.format(formatter);

Nach der Ausführung des obigen Codes enthält formatted:

2024-03-15

Eine Zeichenfolge in ein Datum parsen:

String dateStr = "2024-03-15";
LocalDate date = LocalDate.parse(dateStr, formatter);

Beide Schritte können fehlschlagen. DateTimeFormatter.ofPattern() löst eine IllegalArgumentException aus, wenn das Muster selbst ungültig ist, zum Beispiel ofPattern("invalid"), weil i kein Musterzeichen ist. LocalDate.parse() löst eine DateTimeParseException aus, wenn der Text nicht dem Muster entspricht oder kein gültiges Datum ist, zum Beispiel "2024-13-45". IllegalArgumentException befindet sich in java.lang und muss daher nicht importiert werden:

try {
    DateTimeFormatter f = DateTimeFormatter.ofPattern(pattern);
    LocalDate d = LocalDate.parse(text, f);
} catch (DateTimeParseException e) {
    // Der Text entspricht nicht dem Muster
} catch (IllegalArgumentException e) {
    // Das Muster ist ungültig
}
challenge icon

Aufgabe

Einfach

Erstelle eine Methode namens formatDate, die drei Argumente entgegennimmt:

  1. Ein String (dateStr): das Datum, geschrieben im Eingabemuster
  2. Ein String (inputPattern): das Muster des Eingabedatums
  3. Ein String (outputPattern): das gewünschte Ausgabemuster

Die Methode sollte:

  1. Das Eingabedatum anhand des Eingabemusters parsen
  2. Es anhand des Ausgabemusters formatieren
  3. Diese Muster unterstützen:
    • "basic": "yyyy-MM-dd"
    • "long": "MMMM d, yyyy"
    • "short": "MM/dd/yy"
    • "custom": Die tatsächliche Musterzeichenfolge

Die Rückgabemeldungen sollten lauten:

  • Bei einem ungültigen Datum: "Invalid date format" zurückgeben
  • Bei einem ungültigen Muster: "Invalid pattern" zurückgeben
  • Bei Erfolg: das formatierte Datum zurückgeben

Probier es selbst

import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class Main {
    public static String formatDate(String dateStr, String inputPattern, String outputPattern) {
        // Schreibe deinen Code hier
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String dateStr = scanner.nextLine();
        String inputPattern = scanner.nextLine();
        String outputPattern = scanner.nextLine();
        
        System.out.println(formatDate(dateStr, inputPattern, outputPattern));
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf

Übe selbstständig: Online-Java-Compiler