2010-08-21 4 views
1

이 날짜 포맷터를 사용하면 날짜 -> 문자열 -> 날짜에서 가져온 날짜와 동일한 날짜를 다시 돌려주지 않습니다.NSDateFormatter 인코딩과 디코딩이 일치하지 않습니다

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setFormatterBehavior:NSDateFormatterBehavior10_4]; 
[formatter setDateFormat:@"MMM d, YYYY hh:mm aaa"]; 

NSDate *date = [NSDate date]; 
NSString *string = [formatter stringFromDate:date]; 
NSDate *resultingDate = [formatter dateFromString:string]; 

내 테스트에서 Aug 24, 2010 01:00 PM이라는 날짜 문자열이 생성되었습니다. dateFromString으로 다시 입력하면 2009-12-27 13:00:00이 나옵니다. 시간은 정확하지만 날짜는 모두 잘못되었습니다.

누구에게 무슨 일이 일어나고 있는지 알고 계십니까?

[formatter setDateFormat:@"MMM d, YYYY hh:mm aaa"]; 

변경하는 것이이 (소문자 Y)에 :

답변

3

문제는이 문입니다

[formatter setDateFormat:@"MMM d, yyyy hh:mm aaa"]; 

그리고 그것을 잘 작동합니다.

솔직히 NSDateFormatter 뒤에있는 코드가 무엇이 잘못 되었는가를 알지 못하지만, 나는 그것이 작동한다는 것을 알고 있습니다.

+0

정말 대단합니다. 고맙습니다. 나는 아직도 그것이 이상한 날짜 -> 문자열,하지만 문자열 -> 날짜에 대한 작업을 찾으십시오. –

관련 문제