2012-03-01 2 views
0

Я пытаюсь сделать дату из строки, однако она всегда делает дату в январе месяце ... Почему?DateFormatter не выводит неверную дату

Код:

NSMutableArray *dateArray = [NSMutableArray array]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"YYYYMMDD"]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT"]]; 

for (id <NSFetchedResultsSectionInfo> sectionInfo in [fetchedResultsController sections]) { 
    NSLog(@"Adding date: %@", [sectionInfo name]); 
    NSDate *newDate = [dateFormatter dateFromString:[sectionInfo name]]; 
    NSLog(@"Adding date 2: %@", newDate); 
    [dateArray addObject:newDate]; 
} 

ЖУРНАЛОВ:

2012-03-01 15:14:48.124 MyApp[21793:fb03] Adding date: 20120827 
2012-03-01 15:14:48.124 MyApp[21793:fb03] Adding date 2: 2012-01-27 00:00:00 +0000 
2012-03-01 15:14:48.125 MyApp[21793:fb03] Adding date: 20120830 
2012-03-01 15:14:48.125 MyApp[21793:fb03] Adding date 2: 2012-01-30 00:00:00 +0000 
2012-03-01 15:14:48.125 MyApp[21793:fb03] Adding date: 20120831 
2012-03-01 15:14:48.126 MyApp[21793:fb03] Adding date 2: 2012-01-31 00:00:00 +0000 
2012-03-01 15:14:48.126 MyApp[21793:fb03] Adding date: 20120906 
2012-03-01 15:14:48.127 MyApp[21793:fb03] Adding date 2: 2012-01-06 00:00:00 +0000 
2012-03-01 15:14:48.127 MyApp[21793:fb03] Adding date: 20120907 
2012-03-01 15:14:48.128 MyApp[21793:fb03] Adding date 2: 2012-01-07 00:00:00 +0000 
2012-03-01 15:14:48.128 MyApp[21793:fb03] Adding date: 20120910 
2012-03-01 15:14:48.128 MyApp[21793:fb03] Adding date 2: 2012-01-10 00:00:00 +0000 
2012-03-01 15:14:48.129 MyApp[21793:fb03] Adding date: 20120913 
2012-03-01 15:14:48.129 MyApp[21793:fb03] Adding date 2: 2012-01-13 00:00:00 +0000 

ответ

3

день месяца спецификатор dd, не DD. Кроме того, вы можете использовать формат yyyy в течение многих лет, так как YYYY означает «Неделя года» ISO и может отличаться от фактического года. Таким образом, ваш окончательный формат должен выглядеть так:

[dateFormatter setDateFormat:@"yyyyMMdd"]; 
+0

Это исправлено! Благодарю. Странно, что 'yyyy' и' dd' повлияли бы на месяц, поскольку это были единственные персонажи, которые были правы. ЛОЛ. – Bot

Смежные вопросы