NSDateFormatter возвращает полностью неверное значение
if (component != kDayComponent)
{
NSInteger i_d = [_datePicker selectedRowInComponent:kDayComponent],
i_m = [_datePicker selectedRowInComponent:kMonthComponent],
i_y = [_datePicker selectedRowInComponent:kYearComponent];
NSString *d = _days[i_d];
// NSString *m = [_months[i_m] length] == 1 ? [NSString stringWithFormat:@"0%@", _months[i_m]] : _months[i_m];
NSString *m = i_m+1 < 10 ? [NSString stringWithFormat:@"0%d", i_m+1] : [NSString stringWithFormat:@"%d", i_m+1];
NSInteger y = [_years[i_y] integerValue];
NSString *completeDate = [NSString stringWithFormat:@"%@/%@/%ld", d, m, (long)y];
NSDateFormatter *dateFormatter = [NSDateFormatter new];
[dateFormatter setCalendar:[NSCalendar autoupdatingCurrentCalendar]];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormatter setDateFormat:@"DD/MM/YYYY"];
NSDate *refreshDate = [dateFormatter dateFromString:completeDate];
// NSDate *refreshDate = [self dateFromMonth:m.integerValue+1
// andYear:y
// andDay:d.integerValue+1];
NSLog(@"refreshDate: %@", refreshDate.description);
[self refreshDaysFromDate:refreshDate];
}
Как вы можете видеть, completeDate
имеет правильное значение даты строки, я пытаюсь форматировать его с NSDateFormatter
и удерживать значение в refreshDate
. Проблема refreshDate
возвращает полностью неправильное значение, даже если я установил NSTimeZone
или NSCalendar
.
Проконсультируйтесь с отличной документацией: http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns –