如何检查输入字段是否为c#中的时间格式?
我目前正在制作一个注册系统,我想要一个像[Required](属性?)这样的东西来检查输入字符串的时间格式是否正确(18:00、20:00、1:00等),我该怎么做?是否有此功能,或者必须手动完成?谢谢。使用TimeSpan.TryParse将时间间隔的字符串表示形式转换为其TimeSpan等效形式,并返回一个值,指示转换是否成功您可以将如何检查输入字段是否为c#中的时间格式?,c#,asp.net-mvc-5,time-format,C#,Asp.net Mvc 5,Time Format,我目前正在制作一个注册系统,我想要一个像[Required](属性?)这样的东西来检查输入字符串的时间格式是否正确(18:00、20:00、1:00等),我该怎么做?是否有此功能,或者必须手动完成?谢谢。使用TimeSpan.TryParse将时间间隔的字符串表示形式转换为其TimeSpan等效形式,并返回一个值,指示转换是否成功您可以将RegularExpressionAttribute与以下正则表达式一起使用: ^([01]?\d|2[0-3]):[0-5]\d$ 您可以使用正则表达式作
RegularExpressionAttribute
与以下正则表达式一起使用:
^([01]?\d|2[0-3]):[0-5]\d$
您可以使用
正则表达式作为验证属性:
[RegularExpression(@"^([0-1]\d|2[0-3]):([0-5]\d)$", ErrorMessage = "invalid date format")]
正则表达式可以在这里找到:我建议这样一种方法:
public bool IsValidTime(string time)
{
DateTime dummyDate;
return DateTime.TryParseExact(time, new[] { "HH:mm", "H:mm" },
CultureInfo.InvariantCulture,
DateTimeStyles.NoCurrentDateDefault, out dummyDate);
}
此方法验证具有1位或2位小时数的24小时时钟格式
在提供输入的情况下,它给出以下结果:
"00:00" => true
"20:00" => true
"26:00" => false
"1:00" => true
"10:5" => false
如果我没有记错的话,当传递字符串“12345”时,它不应该抛出错误,因为它假定这是秒数。如果我没记错的话(现在正在寻找确认)@UlugbekUmirov谢谢,用你的正则表达式更正它。