У меня проблема с правильным поиском даты с использованием форматера даты. Я сохранил дату в следующем формате:
[dateFormat setDateFormat: @ "ГГГГ-ММ-дд ЧЧ: мм: сс"];
Теперь мне нужно отобразить сохраненную дату в контроллере представления. Для удобства читабельности и простоты я извлек сохраненную дату из базы данных и изменил ее на короткий формат, например, 17 января, 18 февраля и т. Д.это код реализации для этого:
remind.Date = [[NSString alloc]initWithUTF8String:(const char *)sqlite3_column_text(statment, 3)];
NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [dateFormat dateFromString:remind.Date];
[dateFormat setDateFormat:@"MMMM dd"];
NSString *dateVal = [dateFormat stringFromDate:date];
remind.Date = dateVal;
Теперь значение даты будет видно, как показано на следующем снимке:
Все эти датысохраненный в массив с именем grpArray
Теперь я хочу получить полную дату отформатированной даты, когда я выбираю строку и перехожу к контроллеру, где эта дата сохраняется, для того, чтобы он выбрал строку в пути индекса Iреализовал следующий код:
-(void)tableView:(UITableView *)atableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
ReminderClass *rem = [self.grpArray objectAtIndex:indexPath.section];
// Instantiate your detail/editor view controller,
// and pass in the ReminderClass object to be edited.
ERAddReminderViewController *rdvc = [[[ERAddReminderViewController alloc]initWithReminder:rem]autorelease];
NSDateFormatter *dateFormat = [[[NSDateFormatter alloc]init]autorelease];
[dateFormat setDateFormat:@"MMMM dd"];
[dateFormat setLenient:YES];
NSDate *date = [dateFormat dateFromString:rem.Date];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *dateVal = [dateFormat stringFromDate:date];
rem.Date = dateVal;
[self.navigationController pushViewController:rdvc animated:YES];
rdvc.navigationItem.rightBarButtonItem.title = @"Edit";
}
Теперь в соответствии с логикой я должен получить полную дату, т.е. указанный формат. Работает нормально, но возникла проблема с правильным годом aи время, которое было первоначально сохранено. Пожалуйста, см. следующий снимок для пояснения:
Теперь, как мы видим, дата 1970-01-17 00: 00: 00
Но фактическая дата, которую я сохранил, была 2012-01-17 19: 40: 40
Что пошло не так с реализацией
Может кто-нибудь, пожалуйста, направьте меня правильно
Спасибо всем заранее:)