iphone - NSDateFormatter返回null

标签 iphone objective-c ios nsdate nsdateformatter

我正在尝试将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.createdTimenil吗?此外,您正在-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];
如果datenil,那么这两个NSLog()调用都会告诉您。

编辑
仔细检查data.createdTimeNSDate实例。也许它是另一个类的实例,例如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/

相关文章:

objective-c - 如何通过拖放文件来启动非基于文档的 Cocoa 应用程序?

iphone - 如何打印或记录 CGSize 对象的值?

iphone - __dyld_dyld 应用程序启动时出现 fatal error

iphone - 如何将特定的电子邮件收件人添加到我的 sharekit 项目?

ios - Spotify iOS SDK Beta 25 在真实设备上没有声音

ios - iOS-为什么在模拟器上构建失败,但是在设备/通用iOS设备上成功?

iOS webview ssl 连接(kCFStreamErrorDomainSSL,-9843)

ios - 自定义 URI 方案 "Unsupported URL"

ios - swift Realm : creating instance of Realm throws NSException

iphone - 如何在 iOS 中获取任意位置的图片