如何解决NSDateFormatter返回null
| 我正在尝试将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
?此外,您正在对dateFormat
执行-setDateFormat:
选择器,但看来您的日期格式器是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\");
,[dateFormat setDateFormat:@\"yyyyMMdd\"];
应该:
[dateFormatter setDateFormat:@\"yyyyMMdd\"];
如果仍然无法使用,则data.createdTime;
出了点问题,因为我运行了这段代码并收到了预期的输出:
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@\"yyyyMMdd\"];
NSDate *date = [NSDate date];
NSLog(@\"%@\",date);
NSLog(@\"%@\",[dateFormatter stringFromDate:date]);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。