У меня есть этот кусок кода:
// Convert string to date object
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"MMMM d, YYYY"];
NSDate *formatDate = [dateFormat dateFromString:self.date];
NSLog(@"1-%@", self.date);
NSLog(@"2-%@", formatDate);
NSDateComponents *components = [[NSCalendar currentCalendar] components:NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit fromDate:formatDate];
NSString *dateCal = [NSString stringWithFormat:@"%d/%d/%d", [components day], [components month], [components year]];
NSLog(@"3-%@", dateCal);
milage.date = dateCal;
Первый NSLog возвращает:
1 марта 23, 2012
Второй:
2-2011-12-25 00:00:00 + 0000
Третий:
3-25 / 12/2011
Почему дата изменяется при получении даты из строки и ее форматировании? Я ожидаю, что третий NSLog (или dateCal) будет равен 23/3/2012. Я живу в Великобритании, так что это не связано с часовым поясом ..
Спасибо
Jack