如何验证字符串是否采用特定日期格式?

时间:2011-04-30 10:36:04

标签: c#

如何验证字符串的格式为"dd.MM.yyyy HH:mm:ss.mmm"

例如:

12.01.2011 13:26:10.000
13.05.2010 22:30:20.000

应该被接受,其他人应该被拒绝。我希望能够做到这样的事情:

string c = "12.01.2011 13:26:10.000";

if (string.CompareFormat(c))
{
    // do something
}
else
{
    // do something else
}

4 个答案:

答案 0 :(得分:3)

尝试使用DateTime.TryParse ...

解析它

答案 1 :(得分:2)

您可以使用TryParseExact

        string format = "dd.MM.yyyy HH:mm:ss.fff";
        string c = "12.01.2011 13:26:10.000";
        CultureInfo enUS = new CultureInfo("en-US");

        DateTime result;
        if (DateTime.TryParseExact(c, format, enUS, DateTimeStyles.None, out result))
        {
            Console.WriteLine("Right Format");
        }
        else
        {
            Console.WriteLine("Wrong Format");                
        }

答案 2 :(得分:1)

TryParseExact与您所需的日期格式一起使用。与普通Parse / TryParse相比,这将确保只匹配此特定格式。

string c = "12.01.2011 13:26:10.000";
DateTime result;
if (DateTime.TryParseExact(c, "dd.MM.yyyy HH:mm:ss.fff", CultureInfo.InvariantCulture, DateTimeStyles.None, out result)) {
    // do something
} else {
    // do something else
}

答案 3 :(得分:0)

  try
            {
                string c = "12.01.2011 13:26:10.000";
                DateTime dt = Convert.ToDateTime(c.ToString());
            }
            catch (Exception ex)
            {
                //Rejected
            }

当它不在datetime格式时会发生异常

或者可以使用TryParse

string c = "12.01.2011 13:26:10.000";
                DateTime dt;
                if(!DateTime.TryParse(c,out dt))
                {
                //rejected
                }