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

Я пытаюсь проанализировать строку, созданную 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|

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

1 Ответ

9 голосов
/ 05 мая 2009

Ваша проблема в том, что «ГГГГ» не является допустимой опцией форматирования даты ICU. Вы хотите "гггг".

Заглавная буква «Y» действительна только при использовании с опцией «неделя года» (т. Е. «Неделя» w «Y»).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...