2011-02-23 2 views
11

나는 "2/22/11"형식의있는 NSString 일을이 형식으로 변환하려고 해요 : 이것은 내 코드 2011-02-22NSDateFormatter 및 YYYY-MM-DD

입니다 : 동일있는 NSString 같은

NSDate *dateTemp = [[NSDate alloc] init]; 
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setDateFormat:@"yyyy-MM-dd"]; 
dateTemp = [dateFormat dateFromString:newInvoice.date]; 
newInvoice.date = [dateFormat stringFromDate:dateTemp]; 

newInvoice.date 시작 "2/22/11"이다. dateTemp은 NIL로 끝납니다. newInvoice.date도 NIL로 끝납니다.

나는 왜 내 인생에 대해 생각할 수 없다.

답변

25

날짜 포맷터가 올바르지 않기 때문에이 문제가 발생합니다. newInvoice.date 변수 저장소를 "11:02:23"으로 지정하고 dateFormatter를 @ "yy : MM : dd"로 설정하고 newInvoice.date 변수 저장 "2/22/11"는 다음 dateFormatter는해야 @ "MM/DD/YY"

NSDate *dateTemp = [[NSDate alloc] init]; 
NSDateFormatter *dateFormat1 = [[NSDateFormatter alloc] init]; 
NSDateFormatter *dateFormat2 = [[NSDateFormatter alloc] init]; 

[dateFormat1 setDateFormat:@"MM/dd/yy"]; 
[dateFormat2 setDateFormat:@"yyyy-MM-dd"]; 

dateTemp = [dateFormat1 dateFromString:newInvoice.date]; 
newInvoice.date = [dateFormat2 stringFromDate:dateTemp]; 

모두 형식이 올바른 결과

+2

즉, 2 개의 포맷터가 필요합니다. 하나는 in, 하나는 out입니다. – Wevah

1

것은이 잘 작동합니다을 얻을 귀하의 요구 사항에 따라해야 . 날짜 스타일을 설정했습니다. NSDateFormatterShortStyle을 다른 것으로 변경할 수 있습니다. 또한 newInvoice.date 형식을 확인하십시오.

NSDate *dateTemp = [[NSDate alloc] init]; 

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 

[dateFormat setDateStyle: NSDateFormatterShortStyle]; 

dateTemp = [dateFormat dateFromString: newInvoice.date]; 

[dateFormat setDateFormat:@"yyyy-MM-dd"]; 

newInvoice.date = [dateFormat stringFromDate:dateTemp];