文本框日期验证

本文关键字:验证 日期 文本 | 更新日期: 2023-09-27 18:03:10

我使用以下代码进行短日期验证。

DateTime dt = DateTime.Now;
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("fr-FR");
if (DateTime.TryParse(textBox1.Text, out dt))
{ textBox1.Text = dt.ToShortDateString(); }

但是有一个小问题,如果用户输入1/1/1,输出看起来像01/01/2001。

如果用户输入1-1-1,输出看起来像01/01/2001。Because of Format by me.

现在我想要的是,如果用户像1-1-1一样输入,输出应该是01-01-2001

文本框日期验证

试试这个:

dt.ToString(@"dd-MM-yyyy");

如果你想根据输入来区分输出,我建议这样做:

if (textbox1.Text.Contains("/"))
{
    textBox1.Text = dt.ToString(@"dd/MM/yyyy");
}
else
{
    textBox1.Text = dt.ToString(@"dd-MM-yyyy");
}

我不明白为什么你在这种情况下使用TextBox而不是MaskedTextBox。我建议你使用MaskedTExtBox。从工具箱中拖放两个MaskedTextBox到窗体中,并在formloaddevent中使用以下代码

maskedTextBox1.Mask = "##/##/####";
maskedTextBox2.Mask = "##-##-####";