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

时间:2014-05-05 07:56:53

标签: c# asp.net-mvc-5 time-format

我正在制作一个注册系统,我想要一些像[必需](属性?)来检查输入字符串是否采用正确的时间格式(18:00,20:00,1:00等) 。), 我怎么做?是否有功能或手动必须完成?感谢。

4 个答案:

答案 0 :(得分:2)

您可以将RegularExpressionAttribute与以下正则表达式一起使用:

^([01]?\d|2[0-3]):[0-5]\d$

Regular expression visualization

Debuggex Demo

答案 1 :(得分:0)

use TimeSpan.TryParse将时间间隔的字符串表示形式转换为其TimeSpan等效项,并返回一个值,指示转换是否成功http://msdn.microsoft.com/en-us/library/3z48198e(v=vs.110).aspx

答案 2 :(得分:0)

您可以使用RegularExpression作为验证属性:

[RegularExpression(@"^([0-1]\d|2[0-3]):([0-5]\d)$", ErrorMessage = "invalid date format")]

正则表达式在此处找到:.NET Regular expression for time 24 hr format

答案 3 :(得分:0)

我建议这样的方法:

public bool IsValidTime(string time)
{
    DateTime dummyDate;
    return DateTime.TryParseExact(time, new[] { "HH:mm", "H:mm" }, 
        CultureInfo.InvariantCulture, 
        DateTimeStyles.NoCurrentDateDefault, out dummyDate);
}

此方法可验证24小时时钟格式,包含1或2位小时数字。

它使用提供的输入提供以下结果:

"00:00"  => true
"20:00"  => true
"26:00"  => false
"1:00"   => true
"10:5"   => false