2011-01-14 3 views
1

서버에서 반환 된 문자열을 이후 사용을 위해 NSDate 객체로 변환 중입니다. 나는 성공적으로 아이폰 OS 3.2 (모두 & 시뮬레이션 장치)에 dataFromString 방법을 사용하여있는 NSDate 객체로 변환 할 수 있어요dateFromString은 iOS 4.2에서 nil을 반환하고 3.2에서 정상적으로 작동합니다!

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"];를 사용 2011-01-14T16:05:48.555+05:00

그리고 다음은

서버에서 샘플 문자열입니다.

그러나 동일한 코드는 iOS 4.2 기기의 nil을 & sim으로 반환합니다.

는 또한 같은 날짜 형식 패턴의 많은 변화 시도 :

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZ"]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSZZZZ"]; 
[dateFormatter setDateFormat:@"YYY-MM-DD'T'HH:mm:ss.fffK"]; 

하지만 아무것도 작동하지를!

여기에 뭔가가 있습니까?

는 편집 : 나는 하드 코드 입력 문자열에 많은 변화를 시도한 후 시도, 다음 문자열 2011-01-14T16:05:48.555+0500이 문자열의 유일한 차이 서버에서 하나입니다 "yyyy-MM-dd'T'HH:mm:ss.SSSZ"

공지와 함께 일; TimeZone 값의 콜론 (:) 나는 타임 존에서 결장을 언급 할 수있는 날짜 패턴을 찾으려고 노력했다.

실마리 ??

+1

참조 http://stackoverflow.com/questions/4330137/parsing-rfc3339-dates-with-nsdateformatter-in-ios-4-x-and-macos-x-10-6-impossibl –

+0

언급 해 주셔서 감사합니다, 그것은 도움이되었습니다! –

답변

1

나는 당신의 질문에 정답을 모르는,하지만 당신은이 솔루션을 시도 할 수 있습니다 : (:) 문자열의 시간대 값을 서버에서 반환 수동 콜론을 삭제할 수 있습니다

을 새로운이 문자열을 쓰기 "yyyy-MM-dd'T'HH : mm : ss.SSSZ"를 사용하십시오.

소스 코드 :

NSString *[email protected]"2011-01-14T16:05:48.555+05:00"; 

NSString *str1 = [stringFromServer substringToIndex:26]; 

NSString *str2 = [stringFromServer substringFromIndex:27]; 

NSString *result=[NSString stringWithFormat:@"%@%@",str1,str2]; 

그래서이 작동하는 경우 :

편집 : 나는 많은 변화 하드 코드 입력 문자열과 시도 후 다음 문자열을 시도 2011-01-14T16 : 05 : + 0500 48.555 함께 일했다 "YYYY-MM-dd'T'HH : mm : ss.SSSZ" 인용문을

다음 문자열 "결과는"YYYY-MM-dd'T "와 함께 작동합니다 ' HH : mm : ssSZ "

+0

그래, 그의 코멘트에 martin이 올린 내용과 비슷하다. 지금까지 내가 찾은 유일한 작업 솔루션이지만 여전히 더 나은 솔루션을 찾고 있습니다. –