iOS dateFormatter dateFromString месяц выпуска - PullRequest
0 голосов
/ 11 ноября 2011

Надеюсь, это просто быстро, и я упускаю что-то простое ...

У меня есть NSDateFormatter, который я использую для преобразования строки 2011-11-10 в объект Date.

NSDateFormatter *fmtDate = [[NSDateFormatter alloc] init];
[fmtDate setDateFormat:@"YYYY-MM-DD"];

// input of 2011-11-10, output of 2011-01-10 00:00:00 +0000        
[appointment setDate:[fmtDate dateFromString:
  [tempAppointment objectForKey:@"date"]
]];

Возвращение из NSDateFormatter хранится в managedObjectContext. Моя проблема в том, что dateFormatter возвращает дату как 2011-01-10 00:00:00 + 0000

Почему сокращается месяц с ноября по январь? Он сохраняет год и день в порядке, но не месяц.

Нужно ли включать часы, когда я храню дату? Или это как-то связано с форматом, который я установил?

Ответы [ 2 ]

2 голосов
/ 11 ноября 2011

Попробуйте использовать формат @ "yyyy-MM-dd" для формата, указанного здесь в разделе «Использование строк формата для указания пользовательских форматов».У него есть пример и список YYYY как распространенная ошибка.

1 голос
/ 11 ноября 2011

Ваша строка формата даты неверна при использовании YYYY. Попробуйте yyyy-M-d или yyyy-MM-dd

NSString *dateString = @"2011-11-10";

NSDateFormatter *fmtDate = [[NSDateFormatter alloc] init];
[fmtDate setDateFormat:@"yyyy-M-d"];

NSDate *date = [fmtDate dateFromString:dateString];
NSLog(@"date: %@", date);

Выходы:

2011-11-10 20:01:40.638 Craplet[81514:707] date: 2011-11-10 05:00:00 +0000

См:

http://unicode.org/reports/tr35/tr35-10.html#Date_Format_Patterns

...