NSDateFormatter кодирование против декодирования не соответствует - PullRequest
1 голос
/ 22 августа 2010

Когда я использую этот форматер даты, он не возвращает мне ту же дату, с которой я начинаю, если я получил дату -> строка -> дата.

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. Время правильное, но дата неправильная.

Кто-нибудь знает, что здесь происходит?

1 Ответ

3 голосов
/ 22 августа 2010

Проблема с этим утверждением:

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

Замените это на (строчные буквы y):

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

И это прекрасно работает.

Честно говоряне знаю, что не так с кодом, стоящим за NSDateFormatter, но я знаю только то, что он работает.

...