2014-04-17 2 views
4

NSDateFormatted 문자열 Apr 18, 2014 10:34:19 AM2014-04-18T17:34:19으로 어떻게 변환 할 수 있습니까? 아래에서 시도했지만 nilNSDate 포인터를 반환합니다. 여기 누구든지 나를 도와주세요. 감사합니다. .NSDateFormatter를 사용하여 한 형식에서 다른 형식으로 날짜를 변경하십시오.

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; 
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss"]; 
NSDate *date = [dateFormatter dateFromString:@"Apr 18, 2014 10:34:19 AM"]; // Error nil 
NSLog(@"date: %@", date); 
+0

것은 지금 얼마나 일치하는 형식으로 읽기, 다음 형식은 '그 방법을 일치하는 포맷 그것을 좋아한다. NSDate에는 정의 된 형식이 없습니다. NSLog에 표시되는 방식은 디버그 형식입니다. –

+0

(분명히 위의 형식이 읽으려는 날짜와 일치하지 않습니다.) –

+0

[날짜 형식 패턴 페이지] (http://www.unicode.org/reports/tr35/tr35-31/tr35-dates)를 북마크하십시오. .html # Date_Format_Patterns)를 참조하십시오. –

답변

11

당신은 표시하기위한 다른 구문 분석이 날짜 포맷터 하나를 사용해야합니다

NSDateFormatter *parsingFormatter = [NSDateFormatter new]; 
[parsingFormatter setDateFormat:@"MMM dd, yyyy hh:mm:ss a"]; 
NSDate *date = [parsingFormatter dateFromString:@"Apr 18, 2014 10:34:19 AM"]; 
NSLog(@"date: %@", date); 

NSDateFormatter *displayingFormatter = [NSDateFormatter new]; 
[displayingFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss"]; 
NSString *display = [displayingFormatter stringFromDate:date]; 
NSLog(@"display: %@", display); // 2014-04-18T17:34:19 
+0

완벽. 리치 감사합니다. 여기서 핵심은 displayingFormatter stringFromDate에서 parsingFormatter의 NSDate를 사용하는 것입니다. – newdev1

+1

FYI - 'T'주변의 형식 문자열에서 구두점을 따옴표로 묶을 필요가 없습니다. – rmaddy

+0

먼저 NSDate 객체로 변환하지 않고이 작업을 수행 할 수있는 방법이 있습니까? –

관련 문제