Heim >Java >javaLernprogramm >Wie kann ich überprüfen, ob eine Zeichenfolge mit einem bestimmten Datumsformat in Java übereinstimmt?

Wie kann ich überprüfen, ob eine Zeichenfolge mit einem bestimmten Datumsformat in Java übereinstimmt?

DDD
DDDOriginal
2024-11-03 00:31:29655Durchsuche

How Can I Check If a String Matches a Specific Date Format in Java?

Überprüfung einer Zeichenfolge anhand des erforderlichen Datumsformats in Java

Übersicht

Die Feststellung, ob eine bestimmte Zeichenfolge einem bestimmten Datumsformat entspricht, ist eine häufige Aufgabe in Java . In diesem Artikel werden zwei unterschiedliche Ansätze zur Lösung dieses Problems vorgestellt, ohne auf Lösungen für reguläre Ausdrücke zurückzugreifen.

Ansatz 1: SimpleDateFormat

Die SimpleDateFormat-Klasse bietet eine unkomplizierte Möglichkeit, dies zu erreichen. So kann es implementiert werden:

<code class="java">import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class Main {

    public static void main(String[] args) {
        String format = "dd/MM/yyyy";
        String input = "20130925";
        Date date = null;

        try {
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            date = sdf.parse(input);
            if (!input.equals(sdf.format(date))) {
                date = null;
            }
        } catch (ParseException ex) {
            // Invalid date format
        }

        boolean isValid = date != null;
        System.out.println("Is valid: " + isValid);
    }
}</code>

Bei diesem Ansatz wird die SimpleDateFormat-Instanz zum Parsen der Eingabezeichenfolge verwendet. Wenn die Analyse erfolgreich ist und das resultierende Datum mit der ursprünglichen Zeichenfolge übereinstimmt, gilt die Eingabe als gültig. Andernfalls gilt es als ungültig.

Ansatz 2 (Java 8): Datum-Uhrzeit-API

Für Java 8 und höher bietet die Einführung der Datum-Uhrzeit-API eine modernere und robustere Lösung Ansatz:

<code class="java">import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

public class Main {

    public static void main(String[] args) {
        String format = "dd/MM/yyyy";
        String input = "20130925";
        Locale locale = Locale.ENGLISH;

        boolean isValid = isValidFormat(format, input, locale);
        System.out.println("Is valid: " + isValid);
    }

    public static boolean isValidFormat(String format, String input, Locale locale) {
        LocalDateTime ldt = null;
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern(format, locale);

        try {
            ldt = LocalDateTime.parse(input, formatter);
            String result = ldt.format(formatter);
            return result.equals(input);
        } catch (DateTimeParseException e) {
            try {
                LocalDate ld = LocalDate.parse(input, formatter);
                String result = ld.format(formatter);
                return result.equals(input);
            } catch (DateTimeParseException ex) {
                try {
                    LocalTime lt = LocalTime.parse(input, formatter);
                    String result = lt.format(formatter);
                    return result.equals(input);
                } catch (DateTimeParseException e2) {
                    // Debugging purposes
                    e2.printStackTrace();
                }
            }
        }

        return false;
    }
}</code>

Diese Lösung nutzt die erweiterten Formatierungsfunktionen der Datum-Uhrzeit-API, um präzisere Prüfungen durchzuführen. Es berücksichtigt die Möglichkeit unterschiedlicher Eingabeformate, einschließlich nur Datum, nur Uhrzeit und vollständiger Datums- und Uhrzeitformate. Die isValidFormat-Methode ermöglicht eine flexible Prüfung anhand verschiedener Gebietsschemas.

Fazit

Diese beiden Ansätze bieten zuverlässige Lösungen, um zu überprüfen, ob eine Zeichenfolge einem bestimmten Datumsformat in Java entspricht. Die Wahl der Methode hängt von den Anforderungen und der verwendeten Java-Version ab.

Das obige ist der detaillierte Inhalt vonWie kann ich überprüfen, ob eine Zeichenfolge mit einem bestimmten Datumsformat in Java übereinstimmt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn