ASP.NET MVC - 日期和时间字符串验证

时间:2014-07-09 09:35:22

标签: c# regex asp.net-mvc-4 datetime data-annotations

我正在使用ASP.NET MVC,应用程序用户将能够按时编码日期。我想知道是否应该使用DateTime.TryParse函数来确定它是否是一个有效的日期时间字符串,或者我是否应该在我的ViewModel中使用正则表达式。

如果使用正则表达式,是否有任何现有的日期和时间正则表达式?因为我没有在dd / MM / yyyy hh:mm:ss格式中找到一个。

编辑:我决定使用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变量得到了错误值,我看不出原因。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您的错误是尝试。你的字符串中没有秒数。

现在正在运作:

DateTime dtS;
DateTime dtE;
bool validStart = DateTime.TryParseExact("15/10/2014 13:00", "dd/MM/yyyy HH:mm", new CultureInfo("fr-FR"), DateTimeStyles.None, out dtS);
bool validEnd = DateTime.TryParseExact("15/10/2014 13:00", "dd/MM/yyyy HH:mm", new CultureInfo("fr-FR"), DateTimeStyles.None, out dtE);