Новичок здесь, пытаясь модифицировать яблоки, поставляемые образцом «Дата ячейки» для учебных целей, и у меня возникают настоящие проблемы с датами форматирования. У меня есть tableView с тремя отдельными datePicker в строках 1 (datePickerModeDateAndTime), строка 2 (pickerModeDate), строка 3 (pickerModeTime). Прямо сейчас, я просто работаю над тем, чтобы получить значение от первого сборщика (dateAndTime), зарегистрированного, чтобы я мог получить к нему доступ позже. У меня выбранная дата отображается в деталях ячейки tableView в форме «20 сентября 2013 года, 12:12». Я пытаюсь получить значение для детали и написать разницу между «датой NSDate» и выбранным временем в каталоге документов приложения в файле DD: HH: MM: SS, оставшемся, чтобы я мог установить таймер на другое представление, которое начинает отсчет до выбранной даты/времени и отображает счетчик таймера в UILabel. У меня есть журнал, записывающий дату как «2013-09-20 18:12:33 +0000», когда сборщик первоначально загружен на экран, но после изменения компонентов журнал читает «0: 00: 00: -10». Поэтому у меня есть часть, которая частично делает то, что я хочу, но не добилась успеха в получении правильной даты. благодаря!iOS save formatted datePicker strings
if(self.datePickerIndexPath.row == 1){
targetedDatePicker.datePickerMode = UIDatePickerModeDateAndTime;
self.dateFormatter = [[NSDateFormatter alloc] init];
[self.dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[self.dateFormatter setTimeStyle:NSDateFormatterShortStyle];
NSDate *selected = [NSDate dateWithTimeIntervalSince1970:[self.pickerView.date timeIntervalSince1970] - 1];
self.deadlineCounter = [self.formatter stringFromDate:selected];
NSLog(@"selected is: %@", selected);
NSDate *todaysDate = [NSDate date];
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSUInteger unitFlags = NSDayCalendarUnit | NSMinuteCalendarUnit | NSHourCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *dateComparisonComponents = [gregorian components:unitFlags
fromDate:todaysDate
toDate:selected
options:NSWrapCalendarComponents];
NSInteger days = [dateComparisonComponents day];
NSInteger hours = [dateComparisonComponents hour];
NSInteger minutes = [dateComparisonComponents minute];
NSInteger seconds = [dateComparisonComponents second];
self.DeadlineCounter = [NSString stringWithFormat:@"%ld:%02ld:%02ld:%02ld",
(long)days,
(long)hours,
(long)minutes,
(long)seconds];
NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *deadline = [NSString stringWithFormat:@"%@/deadline.txt", documentsDirectory];
NSInteger success = [NSKeyedArchiver archiveRootObject:selected toFile:deadline];
NSLog(@"success is: %d",success);
NSLog(@"deadline.txt was written successfully with these contents %@,", self.deadlineCounter);
targetedDatePicker.minimumDate = [NSDate date];
targetedDatePicker.maximumDate = [todaysDate dateByAddingTimeInterval:604800];
}
В принципе, если пользователь выбирает «25 сентября 2013 г., 2:25 PM» от выбора даты, я хочу, чтобы написать строку так, что таймер может быть создан, отображается в другой точке зрения, и установите значение «выключено» и выбранную дату и время. (Я получил дату, которую нужно написать и прочитать на правильных контроллерах, и timerLabel, отображающий дату в форме «0: 00: 00: 00», но это неправильные номера)
Как бы связать это с моим уже существующим кодом, используя новую датуFromStrong и uploadDate? (У меня буквально есть только 3 недели знаний о самоуправлении) –
Не обязательно просить код, который выкладывается, но больше того, что мне нужно сделать с кодом, который вы дали для его реализации, в основном относящимся к вновь определенному NSDate * dateFromString. Все что угодно помогает. благодаря! –