Heim >Java >javaLernprogramm >Wie kann ich überprüfen, ob eine Zeichenfolge mit einem bestimmten Datumsformat in Java übereinstimmt?
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.
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.
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.
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!