我正在尝试将NSDate格式化为日期格式为yyyyMMdd的字符串,这是代码
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyyMMdd"];
NSDate *date =data.createdTime;
NSLog(@"%@",date);
NSLog(@"%@",[dateFormatter stringFromDate:date]);
NSLog向我返回此值
Tue, 24 May 2011 0:05:01 +0800
(null)
有人知道哪一部分不对吗?
提前感谢。
最佳答案
也许currentArticle.createdTime
是有效日期,但是data.createdTime
是nil
吗?此外,您正在-setDateFormat:
上执行dateFormat
选择器,但看来您的日期格式器是dateFormatter
。
尝试以下代码:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat: @"yyyyMMdd"];
NSDate *date = data.createdTime;
NSLog(@" Normal Date = %@", date);
NSLog(@"Formatted Date = %@", [dateFormatter stringFromDate: date]);
[dateFormatter release];
如果date
是nil
,那么这两个NSLog()
调用都会告诉您。编辑
仔细检查
data.createdTime
是NSDate
实例。也许它是另一个类的实例,例如NSString
,其-description
返回显示的日期。这可以解释为什么NSLog()
“显示”日期,但格式化程序返回nil。BOOL isDate = [data.createdTime isKindOfClass: [NSDate class]];
NSLog(@"Date %@ a date.", isDate ? @"is" : @"is not");
关于iphone - NSDateFormatter返回null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6104769/