2014-05-16 1 views
-2

에서 날짜를 얻는 것은 어떻게 다음 날짜에서 날짜를 얻을 수있다 "2014-05-16T16 : 15 : 07 + 01 : 00"아래하지만 일을 일부러 나는이 NSDateFormatter를 사용 문자열 목표 C

. 결과적으로 null을 제공합니다.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"]; 
[dateFormatter dateFromString:sDate]; 
+0

이 날짜 형식을 구문 분석 할 때 기존의 많은 질문이 있습니다. 검색하십시오. 그리고 왜 당신의 형식으로'Z'를 인용합니까? 귀하의 날짜 문자열에'Z' 리터럴이 있습니까? No. – rmaddy

+0

"Google"이라고하는 정말 흥미 진진한 새로운 것이 있습니다. 시도해 볼 수도 있습니다. –

+0

이 질문은 오프 정보로 보입니다. OP 만 찾으면 정보를 쉽게 이용할 수 있었기 때문입니다. –

답변

1

날짜 형식 문자열에 Z 주위에 작은 따옴표를 제거 : 당신은 Z를 인용하면

NSString *sDate = @"2014-05-16T16:15:07+01:00"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; // 5 Zs is technically correct here. 
NSDate *result = [dateFormatter dateFromString:sDate]; 

NSLog(@"result: %@", result); //result: 2014-05-16 15:15:07 +0000 

이 날짜 포맷은 시간보다는 입력 문자열의 문자 'Z'문자를 기대 영역은 GMT로부터의 오프셋으로 사용되며, 이는 날짜 문자열에 포함됩니다.

+0

반환 값은 "결과 : (null)" –

+0

@NabilEl, 내 10.9.3 컴퓨터가 아닙니다. 내 대답의 코드와 NSLog 라인 주석의 출력은 내가 컴파일하고 실행 한 소스 코드 파일과 그 출력에서 ​​직접 복사하여 붙여 넣었다. 여기에서 모든 것을 볼 수 있습니다 : https://gist.github.com/armadsen/0c93770b2d70b340c081 –