【发布时间】:2010-02-24 13:02:41
【问题描述】:
我想检查日期的格式是否正确。有很多正确日期的可能性,例如:
- 02.08.2010
- 2.8.2010
- 02.8.2010 02.08
- 02.August
- ...
我可以用这样的代码测试每个:
if (DateTime.TryParse(DateTime.ParseExact(date, "dd.M.",
new CultureInfo("sl-SI")).ToString(), out dt))
但是我可以有 40 个 if 语句。是否可以用一个 if 语句或一个循环检查所有日期?
更新:
根据目前的答案,我正在测试这段代码,但我还有一个问题。如果我只有 9.2 而不是 9.2.2010 那么此代码将不起作用:
CultureInfo ci = CultureInfo.GetCultureInfo("sl-SI");
string[] fmts = ci.DateTimeFormat.GetAllDateTimePatterns();
if (DateTime.TryParseExact(date, fmts, ci, DateTimeStyles.AssumeLocal, out dt))
{
DateTime = Convert.ToDateTime(date);
Check = true;
}
我必须手动添加这个时间还是我能做什么?
【问题讨论】:
-
你为什么接受所有可能的日期格式作为有效输入?
-
请为您的问题添加更新或使用 cmets 功能。也请不要使用答案表示感谢,使用评论或更好的方式,支持并标记为已接受:blog.stackoverflow.com/2011/01/how-to-say-thanks-in-an-answer