2011-12-14 5 views
2

이 문자열을 "2011-11-23T17 : 59 : 00Z"에서 NSDate로 변환하려고합니다.iOS에서 ISO8601 시간을 구문 분석하는 데 문제가 있습니다

많은 사람들이이 문제를 겪어 왔지만 모두가 약간 다른 형식을 가지고 있습니다. 솔루션을 해킹하지 못했습니다. 같은

내가 해봤 코드 :

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
dateFormat.timeStyle = NSDateFormatterFullStyle; 
[dateFormat setDateFormat: @"yyyy-MM-dd'T'HH:mm:ss'Z'"]; 
NSString* date = ""2011-11-23T17:59:00Z""; 
NSString *dateString = [dateFormat stringFromDate: date]; 

날짜 열은 항상 온다 다시 NULL

답변

3

NSDateFormatter stringFromDate가있는 NSDate 객체를 소요하고 당신이 그것을 문자열을 전달하고 있습니다. http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSDateFormatter_Class/Reference/Reference.html

NSDateFormatter dateFromString을 시도해보십시오.

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat: @"yyyy-MM-dd'T'HH:mm:ssZ"]; 
NSString* dateStr = @"2011-11-23T17:59:00Z"; 
NSDate *date = [dateFormat dateFromString:dateStr]; 

NSLog(@"date: %@", date); 

출력 : 당신이 dateFromString를 사용하는 경우

2011-12-14 00:34:57.587 Craplet[440:707] date: 2011-11-23 22:59:00 +0000 
+0

이 답변이 잘못되었습니다. 형식 문자열은'Z'를 인용해서는 안됩니다. – rmaddy

+0

인용 된 Z없이 답변을 업데이트했습니다. – bryanmac

관련 문제