我正在解析ASP.NET WebForms
页面中的日期时间值,并且日期字符串一直被DateTime.TryParseExact()
方法拒绝,即使它明确地匹配提供的格式字符串之一。DateTime.TryParseExact()拒绝有效格式
这似乎是我的机器上不能在家里,但在生产服务器上的工作,所以我参与思维的本地日期设置,但即使我提供一个IFormatProvider (CultureInfo)
对象作为参数
出现此错误下面的代码:
DateTime startDate;
string[] formats = { "dd/MM/yyyy", "dd/M/yyyy", "d/M/yyyy", "d/MM/yyyy",
"dd/MM/yy", "dd/M/yy", "d/M/yy", "d/MM/yy"};
var errStart = row.FindControl("errStartDate"); //my date format error message
if (!DateTime.TryParseExact(txtStartDate.Text, formats, null, DateTimeStyles.None, out startDate))
{
errStart.Visible = true; //we get here even with a string like "20/08/2012"
return false;
}
else
{
errStart.Visible = false;
}
注意我给上面一个null FormatProvider
,但出现同样的问题,当我提供CultureInfo
对象 (CultureInfo provider = new CultureInfo("en-US"))
此参数。
我错过了什么?
在美国文化中,日期格式为M/d/Y不是D/M/Y – StuartLC 2012-08-17 04:50:27
即使不提FormatProvider,该代码似乎工作正常为了我。尝试指定InvariantCulture。 – danish 2012-08-17 04:51:00