Почему я не могу правильно проанализировать эту строку даты с NSDateFormatter?

StackOverflow https://stackoverflow.com/questions/822417

Вопрос

Я пытаюсь проанализировать строку, сгенерированную NSDateFormatter, используя другой NSDateFormatter с тем же форматом.

Вместо того, чтобы пытаться придать смысл этому предыдущему предложению, вот код:

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"MMM dd, YYYY HH:mm"];

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

NSString *dateString = [format stringFromDate:now];

NSDateFormatter *inFormat = [[NSDateFormatter alloc] init];
[inFormat setDateFormat:@"MMM dd, YYYY HH:mm"];

NSDate *parsed = [inFormat dateFromString:dateString];

NSLog(@"\n"
      "now:        |%@| \n"
      "dateString: |%@| \n"
      "parsed:     |%@|", now, dateString, parsed);

Когда я запускаю этот код, я ожидаю, что parsed будет содержать ту же дату, что и now , но вместо этого я получаю следующий вывод:

now:        |2009-05-04 18:23:35 -0400| 
dateString: |May 04, 2009 18:23| 
parsed:     |2008-12-21 18:23:00 -0500|

У кого-нибудь есть идеи, почему это происходит?

Это было полезно?

Решение

Ваша проблема в том, что " ГГГГ " неверный вариант форматирования даты ICU. Вы хотите " yyyy ".

Заглавная буква "Y" действительна только при использовании с "неделей года" параметр (т. е. "неделя" w "из" Y ").

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top