Вам не нужно регулярное выражение для проверки DateTime
форматов, используйте метод DateTime.TryParseExact
:
Преобразует указанную строку
представление даты и времени
его эквивалент DateTime. Формат
строковое представление должно
точно соответствует указанному формату. The
метод возвращает значение, которое указывает
удалось ли преобразование.
Вот пример того, как его использовать:
DateTime dateTime;
if (!DateTime.TryParseExact(
yourString,
"yyyy-MM-dd",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out dateTime))
{
ModelState.AddModelError(
"Date",
"Date is in an invalid format. It must in the format yyyy-mm-dd");
}
Я не уверен, почему ваше регулярное выражение создает проблемы, но я думаю, что было бы лучше всего избежать этой проблемы здесь вместе, используя правильное решение для проверки DateTime
.