0

エラーは次のとおりです。

文字列は有効な DateTime として認識されませんでした。

カスタムバリデーターの機能:

protected void chkdate1(object sender, ServerValidateEventArgs e)
{
    IFormatProvider theCultureInfo = new System.Globalization.CultureInfo("en-GB", true);
    DateTime from = DateTime.ParseExact(txt_from_date.Text, "MM/dd/yyyy HH:mm:ss", theCultureInfo);
    DateTime to = DateTime.ParseExact(txt_to_date.Text, "MM/dd/yyyy HH:mm:ss", theCultureInfo);
}

カスタム検証は次のとおりです。

<asp:CustomValidator ID="scdt1" runat="server" OnServerValidate="chkdate1" ErrorMessage="To date not less than From date">
4

2 に答える 2

0

おそらく、このエラーが発生する理由は、渡された日付に時間が含まれていないためです。次のような形式にする必要があります。

"06/27/2012 12:00:00"

または、txt_from_date に時間が含まれていない場合は、別の形式を使用できます。

DateTime from = DateTime.ParseExact(txt_from_date, "MM/dd/yyyy", theCultureInfo);

編集:コメントに基づく

DateTime from = DateTime.ParseExact(txt_from_date, "M/d/yyyy", theCultureInfo);
DateTime to = DateTime.ParseExact(txt_to_date.Text, "M/d/yyyy", theCultureInfo);

日付形式を として言及M/d/yyyyしたので、 DateTime.ParseExact でそれを指定する必要があります

于 2012-06-27T05:31:10.953 に答える
0

の場合、DateTime.ParseExact()文字列表現の形式は、指定された形式と正確に一致する必要があります。そうしないと、例外がスローされます。DateTime.Parse()メソッドまたはDateTime.TryParseExact()メソッドで解析しようとできないのはなぜですか

于 2012-06-27T05:28:56.807 に答える