Почему я не могу правильно проанализировать эту строку даты с NSDateFormatter?
-
03-07-2019 - |
Вопрос
Я пытаюсь проанализировать строку, сгенерированную 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 ").
Не связан с StackOverflow