“当我尝试将字符串转换为DateTime
时,”字符串未被识别为有效DateTime
“错误。
我使用getDate()
方法将当前日期存储到我的数据库中。它被设置为DateTime
。我检索了它并显示在DetailsView
中。然后我从DetailsView
检索并设置标签。
Label ForgotDatelbl = new Label();
ForgotDatelbl = (Label)DetailsView2.FindControl("ForgotPwLabel");
DateTime ForgotDate = DateTime.ParseExact(ForgotDatelbl.ToString(),
"d/M/yyyy hh:mm:ss tt", null); //here is the error
if (DateTime.Now < ForgotDate.AddMinutes(3)) {
}
来源错误:
Line 28: DateTime ForgotDate = DateTime.ParseExact(ForgotDatelbl.ToString(),"d/M/yyyy hh:mm:ss tt", null);
Line 29:
Line 30: if (DateTime.Now < ForgotDate.AddMinutes(3))
在我的数据库中,时间就是这样 - 20/7/2012 7:42:19 PM
编辑
IFormatProvider theCultureInfo = new System.Globalization.CultureInfo("en-GB", true);
DateTime ForgotDate = DateTime.ParseExact(ForgotDatelbl.ToString(), "dd/M/yyyy hh:mm:ss tt", theCultureInfo);
然而,错误仍然存在..
答案 0 :(得分:1)
尝试仅使用1h说明符更改格式:
//20/7/2012 7:42:19 PM
"dd/M/yyyy h:mm:ss tt",
答案 1 :(得分:0)
在重载方法
中使用Culture
答案 2 :(得分:0)
请考虑以下
string dateString = "20/7/2012 7:42:19 PM";
//can be this in your case: string dateLabel = ForgotDatelbl.Text;
var culture = new CultureInfo("en-GB");
var date = DateTime.Parse(dateString, culture, DateTimeStyles.RoundtripKind);
这解析了你想要的完全匹配。