2016-07-14 3 views
-2

DateTime.TryParse(value, out datetime)을 사용하여 문자열에 유효한 날짜가 있는지 확인하고 있습니다. 하지만 문제가 있습니다. 값이 시간 형식 (예 : 14:25:26)이면 Datetime.TryParse이 true를 반환합니다. 이것은 내가 기대하는 바가 아니다. 어떻게 해결할 수 있습니까?DateTime.TryParse가 문자열의 시간 부분을 올바르게 검사하지 않습니다.

+0

14:25:26이 유효한 시간입니다. 그건 2:25:26 PM입니다. –

+1

질문을 약간 정리했지만 더 많은 샘플 코드와 예상 결과를 추가해야합니다. –

+0

가치가 유효하지 않으며 실제로 검증하기를 원하는 이유가 무엇인지 분명하지 않습니다. 문서를 읽는 것이 도움이 될 수 있지만 적어도 질문에 대한 기대치와 목표를 편집하면 답변을 /에 추가/추가 할 수 있습니다. –

답변

1

이것은 실제로 true를 반환하며 이는 예상됩니다. dt의 값은 현재 날짜로 끝납니다. 당신이 무효로 시간 만 포함 된 문자열을 원하는 경우

DateTime dt; 
var result = DateTime.TryParse("14:25:26", out dt); 

대신 TryParseExact을 사용할 수 있습니다.

DateTime dt; 
var result = DateTime.TryParseExact("14:25:26", "MM/dd/yyyy HH:mm:ss", null, DateTimeStyles.None, out dt); 
// result is False, since the string does not contain a date