Ios NSDateFormatter仅对某些对象返回nil
我对NSDateFormatter有点困惑。我有以下代码:Ios NSDateFormatter仅对某些对象返回nil,ios,nsdate,Ios,Nsdate,我对NSDateFormatter有点困惑。我有以下代码: NSDate *createdDate = [fav objectForKey:@"created_at"]; NSString *b = [NSDateFormatter localizedStringFromDate:createdDate dateStyle:NSDateFormatterShortStyle
NSDate *createdDate = [fav objectForKey:@"created_at"];
NSString *b = [NSDateFormatter localizedStringFromDate:createdDate
dateStyle:NSDateFormatterShortStyle
timeStyle:NSDateFormatterFullStyle];
NSString *c = [NSDateFormatter localizedStringFromDate:[NSDate date]
dateStyle:NSDateFormatterShortStyle
timeStyle:NSDateFormatterFullStyle];
字符串c工作正常,但字符串b为零
我打印了两个NSDate对象,它们有一点不同:
[NSDate date] returns 2014-07-21 16:54:31 +0000
createdDate returns 2014-07-14T12:41:57.755-05:00
发生了什么事?在传递日期之前,必须设置格式
formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
[formatter stringFromDate:YourDate];
有了这个,您就有了一个来自date的字符串
希望它对您有用您的
createdDate
是一个字符串(NSString
对象),而不是NSDate
。因此,localizedStringFromDate:…
返回nil
。您有一个指向NSString的NSDate引用。别那么做。为什么人们投票反对这个问题?它包括所有适当的代码和诊断问题所需的输出。你还想要什么?你有日期字符串。将其转换为NSDate
,然后您可以使用您必须使用的代码将NSDate
转换为新的字符串格式。@user3423369实际上,第一条注释很有帮助,并提前告诉了您问题所在。具体地说,我发现我必须使用的格式是“yyy-MM-dd'T'HH:MM:ss.SSSZ”因为时区和毫秒数。。。