0

DateTime文字列をに変換しようとすると、「文字列が有効なものとして認識されませんでした」というエラーが発生しましたDateTime

getDate()メソッドを使用して現在の日付をDBに保存しました。そして、として設定されまし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

1時間の指定子のみでフォーマットを変更してみてください。

//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 に答える