【发布时间】:2013-07-05 02:23:37
【问题描述】:
我这里有一段 c# 代码:
string inputString = textBox1.Text;
DateTime dt;
try
{
if (DateTime.TryParseExact(inputString, "yyyyMMdd", null, DateTimeStyles.None, out dt) == true)
{
dt = dt.AddMonths(6);
textBox2.Text = dt.ToString("yyyyMMdd");
}
else if (DateTime.TryParseExact(inputString, "yyyy.MM.dd", null, DateTimeStyles.None, out dt) == true)
{
dt = dt.AddMonths(6);
textBox2.Text = dt.ToString("yyyyMMdd");
}
}
catch (Exception ex) { MessageBox.Show(ex.Message); }
基本上,它的作用是,用户在 textbox1 中输入一个字符串,单击按钮时,C# 将检查文本框中的日期格式,然后在日期上添加 6 个月并将其输出到 textbox2 中以字符串格式 yyyyMMdd。正如您现在所看到的,它接受 yyyyMMdd 和 yyyy.MM.dd 并执行相同的过程。但我的问题是我还剩下很多日期格式:
dd-MM-yy
yyyy/mm/dd
yyyy-mm-dd
yy/mm/dd
我不想在我的 IF 语句中使用 OR。有没有一种方法,无论格式是什么,都将被接受并执行该过程。 非常感谢各位!
【问题讨论】:
-
您的问题将是歧义之一。以下内容应解释为:12/11/13。那是 11 月 12 日还是 12 月 11 日?
-
2012 年 11 月 13 日。由于标点符号和两位/四位数年份的变化,提供的具体列表实际上都是明确的,尽管这是假设提供的列表是他们计划使用的所有格式的完整列表使用。
-
哦!我明白了。所以也许我应该坚持如果否则呢?
-
我认为这是他们计划使用的所有日期格式...
-
我相信你可以直接说 textBox2.Text = DateTime.Parse(inputString).ToString("yyyyMMdd");小提琴链接:dotnetfiddle.net/uuFZ1X
标签: c# .net date-format