2

最初の日付フィールドが 2 番目の日付フィールドより小さいかどうかを確認するために 2 つの日付フィールドを比較していますが、「文字列は有効な DateTime として認識されませんでした」というエラーが発生し、この行で失敗しています

DateTime Field2 = DateTime.Parse(gr.Cells[10].Text);

これは、この日付フィールドが私のテーブルでどのように見えるかです: 2012-11-08

DateTime Field1 = DateTime.Parse(gr.Cells[3].Text);
DateTime Field2 = DateTime.Parse(gr.Cells[10].Text);
DateTime strDate = System.DateTime.Now;
if (Field2 == null && Field1 < strDate)
4

3 に答える 3

4

ParseExactを使用して、「yyyy-MM-dd」または「yyyy-dd-MM」の形式を指定します

于 2012-11-12T04:02:20.530 に答える
3

使用DateTime.ParseExact

var res = 
    DateTime.ParseExact("2012-11-08", "yyyy-MM-dd", 
        CultureInfo.InvariantCulture);
于 2012-11-12T04:02:04.750 に答える
1

DateTime.ParseのMSDNエントリによると:

文字列sは、現在のスレッドカルチャによって暗黙的に提供される現在のDateTimeFormatInfoオブジェクトのフォーマット情報を使用して解析されます。

現在のスレッドカルチャの日付形式は、指定した文字列の日付形式とは大きく異なるため、エラーが発生している可能性があります。

できることは、日付に使用する形式を指定することです。

 DateTime.ParseExact(gr.Cells[10].Text, "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
于 2012-11-12T04:06:55.237 に答える