0

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);

但是,错误仍然存​​在..

4

3 回答 3

1

尝试仅使用 1h 说明符更改格式:

//20/7/2012 7:42:19 PM
"dd/M/yyyy h:mm:ss tt",
于 2012-07-21T13:45:40.117 回答
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);

这会解析您想要的完全匹配。

于 2012-07-21T13:53:25.260 回答
0

Culture在重载方法中使用

于 2012-07-21T13:21:10.263 回答