2014-10-11 2 views
0

'NSString'을 'NSDate'로 변환하려고합니다. 내 코드가 오늘 아침에 iOS 7에서 작동하고 있었고 현재 iOS 8 시뮬레이터와 함께 작동하지 않습니다 ...이 문제를 해결하기 위해 iOS 7 시뮬레이터를 설치하지만 아무 것도 변경하지 않습니다.NSString을 NSDate로 변환 할 때 오류가 발생했습니다.

NSString *query = [components objectAtIndex:i]; 
NSDateFormatter *newformatter = [[NSDateFormatter alloc]init]; 
[newformatter setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; 
NSDate * testdate = [newformatter dateFromString:query]; 
NSLog(@"Query : %@ Test date format : %@", query,testdate); 

결과는 다음과 같습니다 : 여기 내 코드는

검색어 : 2014년 10월 11일 20시 2분 50초 시험 날짜 형식 : (널)

Whyyyyyy ?

답변

3

귀하의 날짜 포맷이 올바르지 않습니다. 24 시간이므로 hh 대신 HH을 사용해야합니다.

[newformatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 

북마크 this reference을 권하고 싶습니다.

+0

동의하십니까? 내 시뮬레이터는 12 시간 전에 이루어져야합니다. – user1833903

0

* 쿼리 란 무엇입니까?

나는이 같은 날짜 문자열, 뭔가가 있다고 생각 :

NSString *dateString = "10-10-2014"; 

그들

NSDate *dateFromString = [[NSDate alloc]init]; 
dateFromString = [newFormatter dateFromString:dateString]; // newFormatter is the format you showed in your example. 
+1

그는'query'를 기록했습니다. 분명히 '2014-10-11 20 : 02 : 50' 문자열입니다. – rebello95

+0

작동하지 않습니다 .. 쿼리는 NSString입니다. 올바르게 인쇄되었다는 것을 NSLog에서 볼 수 있기 때문에 올바르게 채워집니다. – user1833903

0

당신은

[dateFormatter setLocale: [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"]] 

또한 전원을 껐다에 오전/오후 설정을 켜십시오 포맷터의 로케일 설정해야합니다.

+0

로케일을 설정하는 경우 기기의 12 시간 또는 24 시간 시계 설정은 아무런 효과가 없습니다. – Tommy

+0

물론입니다. 두 경우 모두에 대해 확신을 가지기를 바랍니다. – bllakjakk

관련 문제