Я использую ASP.NET MVC, и пользователь приложения сможет кодировать дату со временем. Мне интересно, следует ли использовать функцию DateTime.TryParse, чтобы определить, является ли она допустимой строкой даты даты, или если я должен использовать регулярное выражение в моей модели ViewModel.ASP.NET MVC - проверка строки даты и времени
В случае использования регулярного выражения существует ли существующее регулярное выражение даты и времени? Потому что я не нашел его в формате dd/MM/yyyy hh: mm: ss.
EDIT: Я решил использовать TryParseExact и проверить, действительно ли закодированная дата и время.
Даты Введенные 15/10/2014 13:00 15/10/2014 15:00
Вот что я делаю:
DateTime dtS;
DateTime dtE;
DateTimeFormatInfo fmt = (new CultureInfo("fr-FR")).DateTimeFormat;
bool validStart = DateTime.TryParseExact(svm.StartApp, "dd/MM/yyyy HH:mm:ss", fmt, DateTimeStyles.None, out dtS);
bool validEnd = DateTime.TryParseExact(svm.EndApp, "dd/MM/yyyy HH:mm:ss", fmt, DateTimeStyles.None, out dtE);
if (!validStart || !validEnd)
{
return RedirectToAction("Index");
}
Мои BOOL переменные получают ложные и я не понимаю, почему. Есть идеи?
Вы можете использовать некоторые формы даты/времени сборщика? Это будет намного лучше, чем одно текстовое поле, которое может быть заполнено в различных форматах ... –
По моему скромному мнению TryParse - идеальное решение (лучше, чем регулярное выражение). –
@pwas: Единственным недостатком является то, что он доступен только на стороне сервера. Часто рекомендуется иметь регулярное выражение на стороне клиента, а затем (очевидно) проверить на стороне сервера тоже. –