如何检查输入字段是否为c#中的时间格式?

如何检查输入字段是否为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$ 您可以使用正则表达式作

我目前正在制作一个注册系统,我想要一个像[Required](属性?)这样的东西来检查输入字符串的时间格式是否正确(18:00、20:00、1:00等),我该怎么做?是否有此功能,或者必须手动完成?谢谢。

使用TimeSpan.TryParse将时间间隔的字符串表示形式转换为其TimeSpan等效形式,并返回一个值,指示转换是否成功

您可以将
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谢谢,用你的正则表达式更正它。