我怀疑我是唯一提出这个解决方案的人,但是如果你有更好的解决方案,请在这里发布.我只想在这里留下这个问题,以便我和其他人可以在以后搜索.
我需要判断是否在文本框中输入了有效日期,这是我提出的代码.当焦点离开文本框时我会触发它.
try
{
DateTime.Parse(startDateTextBox.Text);
}
catch
{
startDateTextBox.Text = DateTime.Today.ToShortDateString();
}
Run Code Online (Sandbox Code Playgroud) 我正在使用DateTime.TryParse()函数来检查特定字符串是否是一个有效的日期时间,而不依赖于任何文化.
令我惊讶的是,该函数返回true偶数字符串,如"1-1","1/1".etc.
我怎么解决这个问题?
更新:
这是不是意味着,如果我想检查一个特定的字符串是否是有效的日期时间,我需要一大堆格式?我相信会有不同的组合.
即使有很多日期分隔符('.','/',' - '等等)取决于文化,我也很难定义要检查的格式数组.
基本上,我想检查特定字符串是否包含至少一天(1到31或01到31),月份(1到12或01到12)和年份(yyyy或yy)的任何顺序,以及任何日期分隔符,什么是解决方案?
因此,如果值包含时间的任何部分,它也应该返回true.我无法定义格式数组.