iOS保存格式化的日期选择器字符串
这里的新手试图修改苹果公司提供的“日期单元格”示例代码以便于学习,我在格式化日期方面遇到了实际问题。我有一个表视图,在第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”。所以我已经让它部分做了我想做的事情,但没有成功地从中获得合适的日期。谢谢iOS保存格式化的日期选择器字符串,ios,datepicker,string-formatting,Ios,Datepicker,String Formatting,这里的新手试图修改苹果公司提供的“日期单元格”示例代码以便于学习,我在格式化日期方面遇到了实际问题。我有一个表视图,在第1行(datePickerModeDateAndTime)、第2行(pickerModeDate)、第3行(pickerModeTime)中有三个单独的日期选择器。现在,我正在从记录的第一个选择器(dateAndTime)获取值,以便以后可以访问它。我已将所选日期显示在tableView单元格的详细信息中,格式为“2013年9月20日下午12:12”。我正在尝试获取详细信息的值
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。不过什么都有帮助。谢谢