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
}Aufgabe
EinfachErstelle eine Methode namens formatDate, die drei Argumente entgegennimmt:
- Ein String (
dateStr): das Datum, geschrieben im Eingabemuster - Ein String (
inputPattern): das Muster des Eingabedatums - Ein String (
outputPattern): das gewünschte Ausgabemuster
Die Methode sollte:
- Das Eingabedatum anhand des Eingabemusters parsen
- Es anhand des Ausgabemusters formatieren
- 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));
}
}Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.
Alle Lektionen in Logik & Ablauf
1Mehrdimensionale Arrays
Grundlagen der 2D-ArraysZugriff auf 2D-Array-ElementeVerschachtelte Schleifen mit 2D-ArraysZusammenfassung - 2D-ArraysMatrixaddition & SubtraktionJagged Arrays3D-Arrays und darüber hinausGängige 2D-Array-MusterZusammenfassung - Alles über Arrays4HashSet Teil 1
Was ist ein HashSet?Ein Element hinzufügenEin Element entfernenPrüfen, ob ein Element vorhanden istLeer und GrößeLeeren und KlonenZusammenfassung - HashSet10Datum und Zeit
LocalDate GrundlagenLocalTime OperationenLocalDateTime VerwendungPeriod und DurationDatumsformatierungZeitzonenbehandlung2HashMap Teil 1
Was ist eine HashMap?Eine HashMap deklarierenWerte abrufenPrüfen, ob ein Schlüssel existiertWörterbücher modifizierenZusammenfassung - HashMap3HashMap Teil 2
HashMap-MethodenMit keySet() iterierenMit entrySet() iterierenVerschachtelte HashMapZusammenfassung - Lager verwaltenZusammenfassung - HashMap-Operationen6Erweiterter Steuerungsfluss
Beschriftete AnweisungenSwitch-AusdruckMusterabgleichSchutzklauselnZusammenfassung - Steuerungsfluss9Projekt - Einzigartiger Wortzähler
Texteingabe und SpeicherungWortverarbeitungÜbe selbstständig: Online-Java-Compiler