我正在使用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变量得到了错误值,我看不出原因。有什么想法吗?
答案 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);