Regex pour date et heure ISO 8601

Utilisez /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/ pour vérifier qu'une chaîne entière est une date et heure valide au format ISO 8601. Chaque exemple ci-dessous est testé avec ce motif, et vous pouvez l'ouvrir dans le testeur de regex avec les exemples préchargés.

Mis à jour le

/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/
Ouvrir dans le testeur de regex
EntréeRésultat
2026-10-30T14:30:00Z✓ Correspondance
2026-10-30T14:30:00.123+05:30✓ Correspondance
2026-10-30T14:30Z✓ Correspondance
2026-10-30 14:30:00✗ Aucune correspondance
2026-10-30T14:30:00✗ Aucune correspondance
2026-10-30T14:30:00+0530✗ Aucune correspondance

Fonctionnement du motif

PartieSignification
\d{4}-\d{2}-\d{2}La date
TLe séparateur T littéral
\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?Heures et minutes, secondes et fractions facultatives
(?:Z|[+-]\d{2}:\d{2})Z pour UTC, ou un décalage tel que +05:30

Exemples de code

JavaScript

const re = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/;
re.test(value); // true or false

Python

import re

bool(re.fullmatch(r'\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})', value))

PHP

preg_match('/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/', $value) === 1;

Notes et limites

Cette regex impose un fuseau horaire, ce qui évite les horodatages ambigus. new Date().toISOString() en JavaScript produit toujours une chaîne correspondante. Convertissez les horodatages avec le convertisseur de timestamp Unix.

Questions fréquentes

Quelle est la regex pour une date et heure ISO 8601 ?
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/ — elle valide la chaîne entière. Consultez le tableau ci-dessus pour le rôle de chaque partie.
Quels exemples correspondent ?
Parmi les exemples testés, ceux-ci correspondent : 2026-10-30T14:30:00Z, 2026-10-30T14:30:00.123+05:30, 2026-10-30T14:30Z. Les autres ne correspondent pas.
Comment tester cette regex ?
Cliquez sur « Ouvrir dans le testeur de regex » : le motif, les drapeaux et le texte d'exemple se chargent automatiquement, et les correspondances se surlignent pendant que vous modifiez.