2011-04-30 58 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 
} 
相關問題