C#。验证日期模式

时间:2010-06-21 12:38:11

标签: c# validation

在我的应用程序中,用户可以通过在文本框中输入日期来指定日期模式。此模式用于记录消息。例如,如果用户指定'dd-MM',那么在日志文件中他可以看到以下内容:

[12-06] Some message...
[02-09] Some message 2...

如何验证此模式?如何保护输入错误的模式?

5 个答案:

答案 0 :(得分:3)

最简单的方法是尝试解析日期。

DateTime someDate;

// Valid will be false if it could not parse the date
bool valid = DateTime.TryParse(yourFormat, out someDate);

答案 1 :(得分:0)

正则表达式可能是一个不错的选择。

答案 2 :(得分:0)

您可以在此Regular Expressions

查看question或其他内容

答案 3 :(得分:0)

这是一个难题。我试过了:

try
{
    DateTime.Now.ToString(tmpFormatSpec);                    
}
catch (Exception)
{
    // the format spec is known to be bad
}

问题是日期格式模式非常灵活。即使是不提供日期信息的内容也是允许的(我的示例代码无法检测到这些内容):

DateTime.Now.ToString("bla");  // no exception raised

请参阅此other SO post以获得更好的方法(我还没有尝试过)。

另见J. Skeet的评论,关于这个问题的讨论。

答案 4 :(得分:0)

这是一个难题。我试过了:

{{1}}

问题是日期格式模式非常灵活。即使是不提供日期信息的内容也是允许的(我的示例代码无法检测到这些内容):

{{1}}

请参阅此other SO post以获得更好的方法(我还没有尝试过)。

另见J. discussion关于这个问题,以及J. Skeet的评论。