C# - 正则表达式验证日期和小时

时间:2010-04-11 14:06:42

标签: c# validation

我从CSV文件

收到日期和时间
The received Date format is  YYYYMMDD (string) (there is no ":" ,"-","/" to 
separate  Year month and date).

The received time format is HH:MM (24 Hour clock).

我必须验证两者,以便(例)(i)000011990可以在日期(ii)77:90无效 时间无效。

问题是,

正则表达式是这样做的合适候选者(或)是否还有其他方法可以实现 它?

4 个答案:

答案 0 :(得分:9)

您正在寻找DateTime.TryParseExact

string source = ...;
DateTime date;
if (!DateTime.TryParseExact(source, 
                            "yyyyMMdd", 
                            CultureInfo.InvariantCulture, 
                            DateTimeStyles.None, 
                            out date)) {
    //Error!
}

您可以使用相同的代码验证时间,格式字符串为"HH:mm"

答案 1 :(得分:4)

最简单的解决方案是使用

DateTime output;
if(!DateTime.TryParse(yourstring, out output))
{ 
   // string is not a valid DateTime format
}

DateTime.TryParse将尝试将您的字符串转换为DateTime变量,但如果失败则不会抛出异常 - 如果字符串未被识别为有效的DateTime,则返回false

答案 2 :(得分:2)

我认为更好的方法是使用C#中内置的日期格式类:DateTime.parse

答案 3 :(得分:1)

您可以使用DateTime结构的TryParse方法之一。如果他们无法解析,他们将返回false。

它使用ParseExact方法的另一个选项,但对于那些需要指定格式提供程序的方法。