2012-02-14 12 views
2

그러한 변환을 도와 주시겠습니까 @ "2/8/2012 7:21:09 PM"과 같은 NSString 날짜가 있습니다. 출력에 이러한 문자열이 있어야합니다. : "at 7:21 PM, 2 월 8 일" 다른 날짜 패턴의 dateFormatter를 사용하려고했지만 항상 null을 반환합니다. 내가 잘못하고있는 부분을 이해할 수 없습니다. (NSString 날짜를 NSDate 또는 특정 문자열로 변환

NSString *dateString = newsItem.Date;//Which is equal to @"2/8/2012 7:21:09 PM" 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"mm/dd/yyyy hh:mm:ss"];//I'm sure that this patternt is wrong but have no idea how to write the right one 
NSDate *dateFromString = [[NSDate alloc] init]; 
dateFromString = [dateFormatter dateFromString:dateString]; 
[dateFormatter release]; 
NSLog(@"date:%@", dateFromString); 
+1

NSDateFormatter는이 작업에 적합한 도구입니다. 항상 null을 돌려주는 경우, 지정하는 형식 문자열이 실제 날짜 형식과 일치하지 않는다는 의미입니다. 누군가가 무엇을 잘못했는지 구체적으로 보여 주어야합니다. –

+0

dateFormatter를 사용하여 시도한 코드를 게시하십시오. – bschultz

답변

2

두 개의 서로 다른 날짜 형식 지정자를 사용해야합니다. 먼저 문자열을 날짜로 변환하고 두 번째 형식은 지정된 형식의 문자열로 날짜를 출력합니다.

NSString* dateString = @"2/8/2012 7:21:09 PM"; 
NSDateFormatter* firstDateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[firstDateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; 
NSDate* date = [firstDateFormatter dateFromString:dateString]; 

NSLog(@"Date = %@",date); 

NSDateFormatter* secondDateFormatter = [[[NSDateFormatter alloc] init] autorelease]; 
[secondDateFormatter setDateFormat:@"h:mm a, MMMM d"]; 
NSString* secondDateString = [NSString stringWithFormat:@"at %@",[secondDateFormatter stringFromDate:date]]; 

NSLog(@"%@",secondDateString); 

트릭은 날짜 형식 문자열입니다. 그들은 유니 코드 날짜 형식이라는 형식을 사용하며, 사양은 here입니다.

+0

+1 좋은 지적. 당신이 이것을 한 번도 해 본 적이 없다면, 2 개의 다른 포맷터가 필요하다는 것은 "명백합니다"입니다.이 경우 전혀 명확하지 않습니다 ... –

+0

흠 2 명의 포맷팅 사용자가 왜 이것이 진부인지 아직도 이해할 수 없습니다. 그리고 두 번째 : 나는 날짜를 가지고있다. (많은 감사 !!!) 2012-02-08 17:21:09 +0000 17:21 왜 시간이 오후 7시라면 19:21이 아닌지? – Stas

+0

많은 감사합니다! 그것은 작동합니다! 너희들은 대단하다 ^^ 그래도 19:21 대신에 17:21 이니 왜 아직도 이해가 안돼요 .. 어쨌든 .. 지금은 이상하지 않아요 – Stas

관련 문제