最简单的方法可能是使用DateTime.TryParseExact:
DateTime time;
bool valid = DateTime.TryParseExact(text,
"HHmmss",
CultureInfo.InvariantCulture,
DateTimeStyles.None,
out time);
Run Code Online (Sandbox Code Playgroud)
注意"M"是几个月而"m"是分钟,"s"是秒; "HH"是24小时制的小时而不是"hh",这将使用12小时制(通常在其他地方使用上午/下午指示).
该DateTimeStyles.None说,使用默认选项.这将使用今天的日期作为与时间一致的日期.您可以指定DateTimeStyles.NoCurrentDateDefault哪个将使用1月1日1AD.
如果valid为false,time则将设置为DateTime.MinValue.
如果您使用的是.NET 4,另一种方法是使用TimeSpan.TryParseExact:
TimeSpan time;
bool valid = TimeSpan.TryParseExact(text,
"hhmmss",
CultureInfo.InvariantCulture,
out time);
Run Code Online (Sandbox Code Playgroud)
注意这次使用"hh"而不是"HH".有关详细信息,请参阅MSDN上的Custom TimeSpan格式字符串页面 - 但请记住,这仅适用于.NET 4.