다음 코드 줄이 있습니다.
DateTime dt1 = DateTime.ParseExact("2017/04/09 2:44 PM", "yyyy/MM/dd h:mm tt", System.Globalization.CultureInfo.InvariantCulture);
datetime과 형식이 일치하는 것을 볼 수 있듯이 (적어도 일치하는 것처럼 보임) 변환 할 때 여전히 오류가 발생합니다.
문자열이 유효한 DateTime으로 인식되지 않았습니다.
어디로 가져 갔는지 확실하지 않지만 입력에 몇 가지 보이지 않는 유니 코드 문자가 있습니다. 이것을 복사하여 붙여 넣으면 작동합니다.
DateTime dt1 = DateTime.ParseExact("2017/04/09 2:44 PM", "yyyy/MM/dd h:mm tt", System.Globalization.CultureInfo.InvariantCulture);
더 자세히 살펴보면 /와 0 사이에 "E2 80 8E"가 있고 2 바로 앞에 또 하나가 있습니다 . 유니 코드 테이블에 따르면 이것은 "왼쪽에서 오른쪽으로 표시"입니다.
작동하게하는 한 가지 방법은 예상하지 못한 모든 문자를 제거하는 것입니다.
var input = "2017/04/09 2:44 PM";
var sanitizedInput = Regex.Replace(input, @"[^\w:/ ]", string.Empty);
DateTime dt1 = DateTime.ParseExact(sanitizedInput, "yyyy/MM/dd h:mm tt", System.Globalization.CultureInfo.InvariantCulture);
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다