基于字符串的DateTime格式或模式检查

时间:2014-04-28 11:46:18

标签: c# .net regex

我有一个日期时间字符串。

string strDate = "20140424_18255375";

如何使用此格式YYYYMMDD_HHmmssff

验证日期时间

我试过了:

bool isTrue = DateTime.TryParseExact(strDate, "YYYYMMDD_HHmmssff", CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);

如果有更好的方法可以使用RegEx或任何正常方式验证日期时间,请提供帮助。

2 个答案:

答案 0 :(得分:6)

使用TryParseExact是正确的方法,但您需要使用正确的format specifiers。在这种情况下,我想你想要:

bool valid =  DateTime.TryParseExact(strDate, "yyyyMMdd_HHmmssff", 
                   CultureInfo.InvariantCulture, DateTimeStyles.None, out dt);

请注意,使用yyyy代替YYYYdd代替DD。格式说明符区分大小写。

答案 1 :(得分:0)

试试这个

public override bool IsValid(object value)
{
    var dateString = value as string;
    if (string.IsNullOrWhiteSpace(dateString))
    {
        return true; // Not our problem
    }
    DateTime result;
    var success = DateTime.TryParse(dateString, out result);
    return success;
}

只需添加日期格式。