2010-05-16 97 views
2

我有这个值的字符串:如何从字符串格式化日期?

2010-05-13 23:17:29 

我想格式化和我用下面的代码:

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
formatter.dateStyle = NSDateFormatterMediumStyle; 
NSDate *formattedDate = [formatter dateFromString:dateString]; 
[formatter release]; 

当调试器到达释放线,formattedDate显示“无效CFStringRef“和

Cannot access memory at address 0x0 

任何想法我做错了什么?

+0

'dateString'是否已正确初始化? – shosti 2010-05-16 22:04:58

+0

dateString被释放?保留数是多少?它是一个自动释放的对象吗?如果是这样,你需要保留它。 – falconcreek 2010-05-16 22:09:55

回答

7

dateFromString正在返回nil,因为它无法解析包含日期和时间的字符串。这是因为NSDateFormatterMediumStyle指定的日期格式类似于“2010年5月16日”(它实际上取决于区域设置和用户设置)。此格式与您的字符串不匹配。

要分析你的字符串,你应该设定一个dateFormat代替dateStyle,例如:

formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; 
+0

工作。在上述格式中,我如何显示上午/下午和时区? – 4thSpace 2010-05-16 22:39:06

0

也许你的字符串已经释放。

我也怀疑你的日期字符串格式化程序的格式不正确,它会给你一个空的日期。