Maison > Java > javaDidacticiel > Comment puis-je vérifier si une chaîne correspond à un format de date spécifique en Java ?

Comment puis-je vérifier si une chaîne correspond à un format de date spécifique en Java ?

DDD
Libérer: 2024-11-03 00:31:29
original
663 Les gens l'ont consulté

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

Vérification de la chaîne par rapport au format de date requis en Java

Présentation

Déterminer si une chaîne donnée adhère à un format de date spécifié est une tâche courante en Java . Cet article présente deux approches distinctes pour résoudre ce problème, sans recourir à des solutions d'expressions régulières.

Approche 1 : SimpleDateFormat

La classe SimpleDateFormat fournit un moyen simple pour y parvenir. Voici comment cela peut être implémenté :

<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>
Copier après la connexion

Dans cette approche, l'instance SimpleDateFormat est utilisée pour analyser la chaîne d'entrée. Si l'analyse réussit et que la date résultante correspond à la chaîne d'origine, l'entrée est considérée comme valide. Dans le cas contraire, il est jugé invalide.

Approche 2 (Java 8) : API Date-Time

Pour Java 8 et supérieur, l'introduction de l'API Date-Time offre une interface plus moderne et plus robuste. approche :

<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>
Copier après la connexion

Cette solution utilise les capacités de formatage avancées de l'API Date-Time pour effectuer des vérifications plus précises. Il prend en compte la possibilité de varier les formats d'entrée, notamment les formats de date uniquement, d'heure uniquement et de date et heure complètes. La méthode isValidFormat permet une vérification flexible par rapport à différents paramètres régionaux.

Conclusion

Ces deux approches fournissent des solutions fiables pour vérifier si une chaîne est conforme à un format de date spécifique en Java. Le choix de la méthode dépend des exigences et de la version Java utilisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal