
Validateur regex Java de dates
Le Validateur regex Java de dates aide les développeurs à s'assurer que les chaînes de dates saisies par les utilisateurs ou générées par les systèmes respectent un format valide. Que vous construisiez des formulaires, des API ou des validations backend, cet outil simplifie le test des patterns regex pour les formats de dates courants en Java.
Découvrez d'autres outils Java utiles :
Validateur regex Java de dates - Documentation
Qu'est-ce que le regex de dates ?
Le regex de dates est une expression régulière conçue pour correspondre à des patterns tels que DD/MM/YYYY, MM-DD-YYYY ou ISO YYYY-MM-DD. Contrairement aux parseurs de dates intégrés, regex peut filtrer les saisies mal formatées avant tout traitement approfondi.
Regex est souvent utilisé pour :
Valider les champs de dates soumis par les utilisateurs dans les formulaires
Filtrer des journaux ou des entrées texte par format de date
Imposer des saisies standardisées dans les API ou les pipelines de données
Comment fonctionne le regex de dates ?
Une expression régulière est une séquence de caractères formant un pattern de recherche. Dans le contexte des dates, ce pattern se compose de métacaractères, de littéraux et de quantificateurs définissant le format attendu. Par exemple, vous pouvez exiger que le jour et le mois soient sur deux chiffres et l'année sur quatre, séparés par des barres obliques ou des tirets.
Regex permet également de gérer des scénarios plus complexes, comme la vérification de plusieurs occurrences d'un pattern, le regroupement d'éléments, ou l'ajout de correspondances conditionnelles. Cette flexibilité le rend inestimable pour la manipulation de texte et l'extraction de données.
Patterns regex courants pour les dates
DD/MM/YYYY (avec zéros de tête)
^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\\d{4}$Correspondances : 01/01/2023, 31/12/1999
Échecs : 32/12/2023, 15/13/2020
Construire un regex pour les dates MM/DD/YYYY
Voici comment décomposer la construction de ce pattern :
Mois :
(0[1-9]|1[0-2])accepte uniquement les valeurs de 01 à 12.Séparateur :
[/\-]pour les barres obliques et les tirets.Jour :
(0[1-9]|[12][0-9]|3[01])couvre 01 à 31.Séparateur : encore
[/\-].Année :
\d{4}pour toute année sur quatre chiffres.
Pattern complet :
^(0[1-9]|1[0-2])[/\-](0[1-9]|[12][0-9]|3[01])[/\-]\d{4}$Correspondances : 12/25/2020, 01-01-1999
MM-DD-YYYY (format avec tirets)
^(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])-\\d{4}$Format ISO YYYY-MM-DD
^\\d{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$Exemple complet en Java (DD/MM/YYYY)
import java.util.regex.Pattern; import java.util.regex.Matcher;public class DateValidator { public static void main(String[] args) { String date = "15/08/2023"; String regex = "^(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[0-2])/\d{4}$";
Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(date); if (matcher.matches()) { System.out.println("Format de date valide."); } else { System.out.println("Format de date invalide."); } }
}
Pourquoi utiliser regex pour la validation de dates ?
Regex vous permet de définir précisément à quoi doit ressembler une date valide, en détectant les erreurs avant que votre programme ne tente de les interpréter. Cela réduit les risques d'erreurs ou de données corrompues.
Avantages :
Signale immédiatement des entrées comme
13-45-2020ou2020/02/30.Évite les confusions entre les formats
MM-DD-YYYYetDD-MM-YYYY.Garantit la cohérence des données stockées ou transmises.
Définir des expressions régulières pour la validation de dates en Java
Pour valider un format de date en Java, définissez d'abord l'expression régulière, puis compilez-la avec Pattern.compile(). Par exemple, pour valider le format YYYY-MM-DD :
String regex = "^\d{4}-\d{2}-\d{2}$";
Pattern pattern = Pattern.compile(regex);Quelques formats courants avec leurs regex associées :
MM/DD/YYYY :
^(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])/([0-9]{4})$YYYY-MM-DD :
^\d{4}-\d{2}-\d{2}$YYYY/MM/DD HH:MM:SS :
^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}$
Validation avec Pattern et Matcher en Java
Voici comment valider une date au format YYYY-MM-DD avec les classes intégrées de Java :
Pattern pattern = Pattern.compile("^\d{4}-\d{2}-\d{2}$");
String dateStr = "2023-05-02";
Matcher matcher = pattern.matcher(dateStr);
if (matcher.matches()) {
// Format de date valide
} else {
// Ne correspond pas
}Gestion des années bissextiles
Regex ne peut pas évaluer les règles du calendrier comme les années bissextiles. Si votre validation l'exige, utilisez LocalDate.parse() de Java après la validation de format par regex. Cette approche en deux étapes couvre à la fois la structure et la réalité du calendrier.
Formats UTC et fuseaux horaires
Pour correspondre aux chaînes date-heure au format YYYY-MM-DDTHH:MM:SSZ (UTC) :
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z$Pour les décalages de fuseau horaire personnalisés (ex. +05:30) :
^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}([+-]\d{2}:\d{2})$Bonnes pratiques
Découpez la date en composants (mois, jour, année) pour simplifier les patterns.
Utilisez des plages explicites :
0[1-9]|1[0-2]pour les mois,0[1-9]|[12][0-9]|3[01]pour les jours.Ancrez toujours vos patterns avec
^et$.Testez avec des valeurs limites : 02-29-2024 (valide en année bissextile), 13-01-2019 (invalide).
Utilisez regex comme première ligne de défense, puis enchaînez avec
LocalDate.parse()pour une validation complète.
Pièges courants
Zéros de tête : assurez-vous que votre pattern exige ou accepte les zéros de tête selon votre cas d'usage.
Dates impossibles : regex ne peut pas détecter le 30 février, il vérifie uniquement la structure.
Plages numériques : des patterns trop larges peuvent laisser passer des mois comme
00ou des jours comme39.
Gestion des exceptions
En cas d'erreur de syntaxe dans votre pattern, Java lèvera une PatternSyntaxException. Encapsulez votre logique de validation dans un bloc try-catch :
try {
Matcher matcher = pattern.matcher(dateString);
if (matcher.matches()) {
System.out.println("Date valide");
} else {
System.out.println("Date invalide");
}
} catch (PatternSyntaxException e) {
System.out.println("Erreur de pattern regex : " + e.getMessage());
}Cas d'utilisation
Validation de formulaires : vérifiez les dates de naissance, de réservation ou d'échéance.
Filtrage de journaux : extrayez et traitez les entrées comportant des dates spécifiques.
Conception d'API : imposez des standards de dates dans les payloads de requête et de réponse.
Entrée en base de données : vérifiez et nettoyez les chaînes de dates avant l'enregistrement.
Outils à utiliser en complément
Testeur regex Java : testez des patterns de dates personnalisés ou complexes.
Validateur regex Java d'UUID : associez des identifiants utilisateurs à des timestamps.
Encodeur base64 : encodez des données horodatées pour la transmission.
Générateur de tokens : combinez des chaînes de dates validées avec des tokens sécurisés.
Validateur regex Java d'e-mail : validez les dates aux côtés des champs e-mail dans les formulaires.
Frequently Asked Questions
Ce regex peut-il valider les années bissextiles ?
Comment prendre en charge à la fois les barres obliques et les tirets ?
Doit-on utiliser regex pour toute validation de dates ?
Regex est-il plus rapide que le parseur de dates ?
Quel est le format recommandé pour les API ?
Related Articles



Testez vos API dès aujourd'hui !
Rédigez en langage naturel, Qodex génère des tests sécurisés et prêts à l'emploi.



