Regex для даты и времени ISO 8601

Используйте /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/, чтобы проверить, что вся строка является корректной датой и временем в формате ISO 8601. Каждый пример ниже проверен по этому шаблону, и его можно открыть в Regex Tester с уже загруженными образцами.

Обновлено

/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/
Открыть в Regex Tester
Входные данныеРезультат
2026-10-30T14:30:00Z✓ Совпадение
2026-10-30T14:30:00.123+05:30✓ Совпадение
2026-10-30T14:30Z✓ Совпадение
2026-10-30 14:30:00✗ Нет совпадения
2026-10-30T14:30:00✗ Нет совпадения
2026-10-30T14:30:00+0530✗ Нет совпадения

Как работает шаблон

ЧастьЗначение
\d{4}-\d{2}-\d{2}Дата
TБуквальный разделитель T
\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?Часы и минуты, необязательные секунды и доли секунды
(?:Z|[+-]\d{2}:\d{2})Z для UTC или смещение вида +05:30

Примеры кода

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;

Примечания и ограничения

Для этого формата требуется часовой пояс, что исключает неоднозначные метки времени. new Date().toISOString() в JavaScript всегда даёт совпадающую строку. Преобразовывать метки времени можно с помощью конвертера Unix-времени.

Часто задаваемые вопросы

Какое регулярное выражение нужно для даты и времени ISO 8601?
/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(?::\d{2}(?:\.\d+)?)?(?:Z|[+-]\d{2}:\d{2})$/ — оно проверяет всю строку целиком. Что делает каждая часть, см. в таблице выше.
Какие примеры совпадают?
Из проверенных примеров совпадают следующие: 2026-10-30T14:30:00Z, 2026-10-30T14:30:00.123+05:30, 2026-10-30T14:30Z. Остальные не совпадают.
Как протестировать это регулярное выражение?
Нажмите «Открыть в Regex Tester» — шаблон, флаги и примеры текста загрузятся автоматически, а совпадения будут подсвечиваться по мере редактирования.