最佳答案
我正在解析 ASP.NET WebForms
页面中的 DateTime 值,日期字符串不断被 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"))
。
我错过了什么?