如何格式化字符串的日期?

时间:2010-05-16 21:57:14

标签: iphone objective-c cocoa-touch nsdate

我有一个包含此值的字符串:

2010-05-13 23:17:29

我想格式化它并使用以下代码:

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

当调试器到达发布行时,formattedDate显示“invalid CFStringRef”和

Cannot access memory at address 0x0

任何想法我做错了什么?

2 个答案:

答案 0 :(得分:7)

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

要解析字符串,您应该设置dateFormat而不是dateStyle,例如:

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

答案 1 :(得分:0)

可能你的字符串已经发布。

我还怀疑你的日期字符串的格式不正确,这会给你一个空日期。