Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/115.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iOS保存格式化的日期选择器字符串_Ios_Datepicker_String Formatting - Fatal编程技术网

iOS保存格式化的日期选择器字符串

iOS保存格式化的日期选择器字符串,ios,datepicker,string-formatting,Ios,Datepicker,String Formatting,这里的新手试图修改苹果公司提供的“日期单元格”示例代码以便于学习,我在格式化日期方面遇到了实际问题。我有一个表视图,在第1行(datePickerModeDateAndTime)、第2行(pickerModeDate)、第3行(pickerModeTime)中有三个单独的日期选择器。现在,我正在从记录的第一个选择器(dateAndTime)获取值,以便以后可以访问它。我已将所选日期显示在tableView单元格的详细信息中,格式为“2013年9月20日下午12:12”。我正在尝试获取详细信息的值

这里的新手试图修改苹果公司提供的“日期单元格”示例代码以便于学习,我在格式化日期方面遇到了实际问题。我有一个表视图,在第1行(datePickerModeDateAndTime)、第2行(pickerModeDate)、第3行(pickerModeTime)中有三个单独的日期选择器。现在,我正在从记录的第一个选择器(dateAndTime)获取值,以便以后可以访问它。我已将所选日期显示在tableView单元格的详细信息中,格式为“2013年9月20日下午12:12”。我正在尝试获取详细信息的值,并将“NSDate date”和所选时间之间的差异写入剩余DD:HH:MM:SS的from中的app documents目录,以便我可以在另一个视图上设置计时器,该视图开始倒计时到所选日期/时间,并在UILabel中显示计时器计数。当选择器最初加载到屏幕上时,我的日志将日期写为“2013-09-20 18:12:33+0000”,但在组件更改后,日志显示为“0:00:00:-10”。所以我已经让它部分做了我想做的事情,但没有成功地从中获得合适的日期。谢谢

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];
            }
基本上,如果用户从日期选择器中选择“2013年9月25日,下午2:25”,我想写入字符串,以便创建倒计时计时器,在另一个视图中显示,并设置为开始,以及选择的日期和时间。(我已经在正确的控制器上获得了要写入和读取的日期,并且计时器标签以“0:00:00:00”的形式显示了日期,但它是错误的数字)

尝试以下代码:

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
 [dateFormatter setDateFormat:@"MMM' 'dd','yyyy' 'HH':'mm' a"];
 [dateFormatter setAMSymbol:@"AM"];
 [dateFormatter setPMSymbol:@"PM"];

 NSDate *dateFromString = [dateFormatter dateFromString:uploadDate];

如何使用新的dateFromStrong和uploadDate将其绑定到现有代码中?(我实际上只有3周的自学知识)不一定要求列出代码,但更多的是我需要对您提供的代码做些什么来实现它,主要是关于新定义的NSDate*DATEFORMSTRING。不过什么都有帮助。谢谢