我从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无效 时间无效。
问题是,
正则表达式是这样做的合适候选者(或)是否还有其他方法可以实现 它?
答案 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
方法的另一个选项,但对于那些需要指定格式提供程序的方法。