1

2 つのテキスト ボックス (txtdateofissue と txtdateofexpiry) があります。最初のテキスト ボックスには、CalendarExtender コントロールが添付されています。ユーザーがtxtdateofissueテキストボックスの日付を選択すると、自動的に同じ日付になりますが、来年はtxtdateofexpiryテキストボックスに入力する必要があります。日付は dd-MM-yyyy 形式、つまり 2013 年 4 月 24 日である必要があります。このためのコードを書きましたが、エラーが発生します (文字列は有効な日時形式ではありません)

私のコード:

protected void txtdateofIssue_TextChanged(object sender, EventArgs e)
        {
            DateTime dt = Convert.ToDateTime(txtdateofIssue.Text);
            dt = dt.AddDays(-1).AddYears(1);
            txtdateofExpiry.Text = dt.ToShortDateString();
        }

日時変数 dt を宣言する最初の行でエラーがスローされます (文字列は有効な日時形式ではありません)

このコードをローカル マシンで実行すると問題なく動作しますが、iis で実行するとエラーが表示されます...コードを修正するか、新しい方法でガイドしてください...よろしくお願いします...

4

1 に答える 1

3

DateTime.TryParseExactメソッドを使用できます

DateTime dt;
if (DateTime.TryParseExact(txtdateofIssue.Text, "dd-MM-yyyy",
                           CultureInfo.InvariantCulture,
                           DateTimeStyles.None,
                           out dt))
{
   dt = dt.AddDays(-1).AddYears(1);
   txtdateofExpiry.Text = dt.ToString("dd-MM-yyyy");
}

日時を特定の形式に変換するには

詳細については、カスタムの日付と時刻の形式文字列のドキュメントを参照してください。

于 2013-04-24T04:53:15.883 に答える