0

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

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。因为我给的格式。

现在我想要什么,如果用户输入 1-1-1 输出应该是 01-01-2001。

4

2 回答 2

2

尝试这个:

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

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

if (textbox1.Text.Contains("/"))
{
    textBox1.Text = dt.ToString(@"dd/MM/yyyy");
}
else
{
    textBox1.Text = dt.ToString(@"dd-MM-yyyy");
}
于 2013-03-09T08:19:08.783 回答
0

我不明白你为什么在这种情况下使用 TextBox 而不是MaskedTextBox。我建议您为此使用 MaskedTTextBox。将两个 MaskedTextBox 从 ToolBox 拖放到您的 Form 并在 FormLoadEvent 中使用此代码

maskedTextBox1.Mask = "##/##/####";
maskedTextBox2.Mask = "##-##-####";
于 2013-03-09T20:28:28.033 回答