我确定我错过了一些简单的事情。任何帮助表示赞赏。
在以下代码中[ri EventDate] ='2014-02-07';
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd"];
NSString *ed = [dateFormatter stringFromDate:[ri EventDate]];
NSLog(@"eventDate: %@ -> %@", [ri EventDate], ed);
结果是:eventDate:2014-02-07 - > (空)
BTW - 一旦我将此解析为字符串,我将更改日期格式。首先要做的事情......
答案 0 :(得分:1)
您的EventDate
被意外分配了一个字符串。您需要跟踪此分配发生的位置。如果在确定为字符串分配的位置时遇到问题,可以通过将其声明为非原子,实现setter然后设置条件断点来调试属性。一旦代码中断,您就可以访问分配了错误值的堆栈跟踪。 如果需要原子,请记得删除nonantomic
,并在完成调试后删除自定义setter
断点条件:EventDate != nil && ![EventDate isKindOfClass:[NSDate class]]
答案 1 :(得分:0)
代码是正确的,[ri EventDate]
可能是NSString
,如果NSLog()
一个NSDate
,输出类似于2013-10-09 19:27:30 +0000
,而不是2014 -02-02。
您必须先将[ri EventDate]
转换为NSDate
。例如:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
[df setDateFormat:@"yyyy-MM-dd"];
NSDate *date = [df dateFromString:[ri EventDate]];