NSString到NSDate转换不起作用

时间:2014-05-11 09:40:33

标签: ios objective-c nsstring nsdate

我有这种方法将我的MySQL日期转换为NSDate ...我做错了什么,日期是nil

- (NSDate *)dateFromMySQLString {
    if (self == nil) return nil;
    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"Y-m-d H:i:s"];
    NSDate *date = [dateFormatter dateFromString:self];
    return date;
}

这是来自NSString的类别,而self的值是@"2014-02-12 09:03:44"

2 个答案:

答案 0 :(得分:4)

看起来你正在使用PHP风格的日期格式字符串。这不是NSDateFormatter使用的。 NSDateFormatter's documentation说:

  

格式字符串使用Unicode Technical Standard #35中的格式模式。

我认为您正在寻找的格式模式是yyyy-MM-dd HH:mm:ss。将日期格式字符串替换为该字符串,您应该开始获取所需的NSDate对象。

答案 1 :(得分:1)

由于你的 dateFormatter 不对,日期即为零,你必须使用它:

[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

希望这会对你有所帮助。