2012-07-03 3 views
8

Datetime.TryParse 메서드를 사용하여 유효한 datetime을 확인하고 있습니다. 입력 날짜 문자열은 임의의 문자열 데이터입니다. 지정된 날짜가 유효하지 않으므로 false를 반환합니다.DateTime.TryParse 메서드로 유효한 날짜 확인

DateTime fromDateValue; 
if (DateTime.TryParse("15/07/2012", out fromDateValue)) 
{ 
    //do for valid date 
} 
else 
{ 
    //do for in-valid date 
} 

편집 : 나는 놓쳤다. 나는 "15/07/2012 12:00:00"으로 시간과 함께 유효한 날짜를 확인해야합니다.

어떤 제안을 환영합니다 ....

+4

을 확인하실 수 있습니다 ... 구문 분석은 사용자의 문화에 따라 달라집니다. 항상 염두에 두시겠습니까? "15/07/2012"는 미국에있는 동안 프랑스에서 유효합니다 ... – Kek

+1

MM/DD/YYYY 형식을 예상하는 로켈을 사용하는 경우 15/07/2012는 유효하지 않은 날짜입니다. – Jason

+1

@ Jason 당신 말이 맞아요, 제 로케일은 MM/dd/yyyy formate입니다. 그래서, 그것은 무효입니다. – Sujit

답변

21

당신은 당신이 지원하려는 가능한 형식의 컬렉션을 통과 할 수 있도록 TryParseExact 방법을 사용할 수 있습니다. TryParse 메서드는 문화권에 따라 다르므로 사용하려면 매우주의해야합니다. 그래서 예를 들면

: 당신이 형식이 귀하의 경우 고정 된 것 같다과 같이 TryParseExact을 사용한다

DateTime fromDateValue; 
string s = "15/07/2012"; 
var formats = new[] { "dd/MM/yyyy", "yyyy-MM-dd" }; 
if (DateTime.TryParseExact(s, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, out fromDateValue)) 
{ 
    // do for valid date 
} 
else 
{ 
    // do for invalid date 
} 
0

. 다른 사람이 말했듯이 당신이

DateTime.ParseExact([yourdatehere], 
        new[] { "dd/MM/yyyy", "dd/M/yyyy" }, 
        CultureInfo.InvariantCulture, 
        DateTimeStyles.None); 
0

, 당신은 TryParseExact을 사용할 수 있습니다에 대한 같은

뭔가도 작업 할 수 있습니다. 더 많은 정보와 시간에 사용하기 위해

, 당신이 항상 위험한 일이다 MSDN Documentation