NSDateFormatter dateFromString不正确

时间:2015-08-07 12:25:22

标签: ios nsdate uidatepicker

我将UITableViewCell的{​​{1}}的值设置为当前日期,然后允许用户使用detailTextLabel修改该日期。我像这样设置文本标签

UIDatePicker

这会正确设置文本标签,并显示NSDate *currentDate = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"hh:mm a MM/dd/YYYY"]; cell.detailTextLabel.text = [dateFormatter stringFromDate:currentDate]; 之类的内容。这是所需的输出。当用户选择此单元格时,我希望将日期选择器的08:20 AM 08/07/2015属性设置为单元格中显示的日期。为实现这一点,我在date方法

中有以下内容
tableView:didSelectRowAtIndexPath:

但是,不是将日期设置为单元格中的日期,而是将选择器的日期设置为NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setDateFormat:@"hh:mm a MM/dd/YYYY"]; NSString *dateString = [tableView cellForRowAtIndexPath:indexPath].detailTextLabel.text; self.datePicker.date = [dateFormatter dateFromString:dateString]; ,而不是它应该是什么。记录08:20 AM 12/21/2014输出表视图单元格中的正确字符串。

我有没有理由遇到这个问题?

2 个答案:

答案 0 :(得分:2)

而不是@“hh:mm MM / dd / YYYY ”格式化程序尝试使用@“hh:mm MM / dd / yyyy ”。

根据Apple的文档:

“常见的错误是使用YYYY.yyyy指定日历年,而YYYY指定年份(”年度周“),在ISO年 - 周日历中使用。在大多数情况下,yyyy和YYYY产生相同的数字,但它们可能不同。通常你应该使用日历年。“

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369-SW1

答案 1 :(得分:1)

格式化程序字符串的年份部分应为yyyy,而不是YYYY