2011-04-30 61 views
0

如何验证字符串格式为"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 
} 

回答

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");     
     } 
0
try 
      { 
       string c = "12.01.2011 13:26:10.000"; 
       DateTime dt = Convert.ToDateTime(c.ToString()); 
      } 
      catch (Exception ex) 
      { 
       //Rejected 
      } 

当它不是在日期时间格式异常将发生

或可以使用的TryParse

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

这是太慢了;) – derya 2011-04-30 10:43:41

+0

可以使用的TryParse – Nighil 2011-04-30 10:46:38

+0

@derya:你是什么意思太慢?你有什么表现标准? – 2011-04-30 10:48:15

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 
} 
相关问题