繁体   English   中英

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

[英]C# - Regular Expression validating Date and Hour

我从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可能会因时间而失效。

问题是 ,

正则表达式是这样做的正确候选者(或)有没有其他方法来实现它?

您正在寻找DateTime.TryParseExact

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

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

最简单的解决方案就是使用

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM