2012-05-01 1 views
2

, TryParse 실패 유효한 날짜 시간 문자열을 인식 : 날짜 문자열이 부착 된 요일이있는 경우

DateTime d; 
string dateString = "Tuesday May 1, 2012 9:00 AM"; 
return DateTime.TryParse(dateString, out d); // returns false 

이 그래서 내가 처리하는 가장 좋은 방법은 무엇입니까

그것을 날짜라고 안전하게 결정할 수 있으며 더 나아가 그러한 것으로 변환 할 수 있습니까?

답변

4

당신은 어떤 형식을 찾아 TryParseExact 말할 필요 :

DateTime d; 
string dateString = "Tuesday May 1, 2012 9:00 AM"; 
return DateTime.TryParseExact(
    dateString, 
    "dddd MMMM d, yyyy h:mm tt", 
    System.Globalization.CultureInfo.CurrentCulture, 
    System.Globalization.DateTimeStyles.None, 
    out d 
); 
+0

가능한 날짜 형식이 여러 개인 경우 각각 TryParseExact해야합니까? – ErikE

+0

또 다른 오버로드가있어 가능한 형식의 배열을 지정할 수 있으며 하나가 작동 할 때까지 모든 형식을 시도합니다. –

+0

아하! 고맙습니다. – ErikE

1

이 트릭을 할해야합니다 :)

 // Parse date and time with custom specifier. 
     string dateValue = "Tuesday May 1, 2012 9:00 AM"; 
     string pattern = "dddd MMMM d, yyyy h:mm tt"; 

     DateTime parsedDate; 

     if (DateTime.TryParseExact(dateValue, pattern, null, 
           DateTimeStyles.None, out parsedDate)) 
      Console.WriteLine("Converted '{0}' to {1:d}.", 
           dateValue, parsedDate); 
     else 
      Console.WriteLine("Unable to convert '{0}' to a date and time.", 
           dateValue); 

참조 http://msdn.microsoft.com/en-us/library/w2sa9yss.aspx http://msdn.microsoft.com/ en-us/library/8kb3ddd4.aspx