[英]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.