2017-02-13 1 views
0

의 시작 부분에 내가날짜 시간 ParseExact 방법 ""문자열

DateTime day = DateTime.ParseExact(d, "M/d/yyyy", 
System.Globalization.CultureInfo.InvariantCulture); 

을 사용하고 있으며이 "유효한 날짜 시간으로 인식되지 문자열"을 던지고있다

나는 다른 모든 통해 검토 한 FormatException을 질문 ParseExact 다루는 내가 문자열 d는 그 전에 "\"를 가지고 있으며, "추가로 끝나는 것으로 나타났습니다

... 내 차이가 어디 있는지 알아낼 수 없었다 아래를 참조 ,647,222,297,

나는 그 여분의 문자가 어디에서 오는지는 잘 모르겠지만 정확한 분석과 관련이 있다고 확신한다.

+1

좀 중요합니다. 빠른 시계 창에서 텍스트 시각화기를 사용하여 스파이 유리 아이콘을 사용하여 연습하십시오. 이제 문자열에 여분의 큰 따옴표가 있음을 알 수 있습니다. TextFieldParser 클래스는 올바른 솔루션 인 경향이 있으며, 어디에서 왔는지에 따라 다릅니다. 우리는 좋은 발췌 문장이 아니라 말할 수 없습니다. –

답변

2

슬래시가 없습니다. 이중 따옴표는 이스케이프입니다.

var day = DateTime.ParseExact(d.Trim('"'), "M/d/yyyy", 
           CultureInfo.InvariantCulture); 
0

나는

d = d.Substring(1, d.Length - 2); 

가 선두 제거하고 \ 후행 얻을하는 데 사용 "내 문자열.

을 기능이 잘 작동 그 후. 아직하지 \ 어디 있는지"에에서오고 이 시간.

+1

'd'가 어떻게 초기화되었는지 살펴보고 역 따옴표를 사용하여 여분의 큰 따옴표의 출처를 확인하십시오. – mason

1

문자열이 unescape 인 것처럼 보입니다.

샘플

: 디버거 출력을 읽는 방법을 알고

var d = "\"8/1/2016\""; 
var escapedString = d.Replace(@"""", string.Empty); 
DateTime day = DateTime.ParseExact(escapedString, @"M/d/yyyy", System.Globalization.CultureInfo.InvariantCulture); 
관련 문제