2011-09-02 5 views
9

문자열이 주어진 경우 "15:30:20""2011-09-02 15:30:20", 주어진 문자열에 날짜가 들어 있는지 여부를 어떻게 동적으로 확인할 수 있습니까?문자열에 날짜가 포함되어 있는지 확인

"15:30:20" -> Not Valid 

"2011-09-02 15:30:20" => Valid 
+0

가능한 중복 http://stackoverflow.com/questions/37732/what-is-the-regex-pattern-for -datetime-2008-09-01-123545 – Zenwalker

답변

18

사용 DateTime.TryParseExact 방법. 문자열이 날짜인지 여부를

string []format = new string []{"yyyy-MM-dd HH:mm:ss"}; 
string value = "2011-09-02 15:30:20"; 
DateTime datetime; 

if (DateTime.TryParseExact(value, format, System.Globalization.CultureInfo.InvariantCulture,System.Globalization.DateTimeStyles.NoCurrentDateDefault , out datetime)) 
    Console.WriteLine("Valid : " + datetime); 
else 
    Console.WriteLine("Invalid"); 
12

당신은 문자열을 날짜 시간으로 해석 가능한 경우 확인하려면

bool b = DateTime.TryParseExact("15:30:20", "yyyy-MM-dd HH:mm:ss",CultureInfo.InvariantCulture,DateTimeStyles.AssumeLocal,out datetime); 

를 사용할 수 있습니다.

+0

위의 솔루션을 사용하면 내 2 샘플은 항상 true로 표시됩니다. 문자열에 날짜가 포함되지 않았는지 확인한 다음 거짓이 표시되는지 확인하고 싶습니다. –

+0

수정 한 후 지금 시도하십시오. – Dominik

+0

날짜가 항상 해당 형식으로되어 있다고 가정합니다. 나는 그것이 OP가 원하는 것인가 궁금하다. – RichK

0

사용이 방법을 확인하려면 :

private bool CheckDate(String date) 
    { 
     try 
     { 
      DateTime dt = DateTime.Parse(date); 
      return true; 
     } 
     catch 
     { 
      return false; 
     } 
    } 
관련 문제