使用NSDateFormatter将NSString从NSArray转换为NSDate对象在iOS中为null

时间:2013-10-04 21:10:11

标签: ios nsstring nsdate nsdateformatter

我在数组中有一个字符串对象,形式为" 2013-06-24 12:57:45"。所以我要做的就是使用NSDateFormatter将此字符串转换为NSDate对象,如下所示:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [[NSDate alloc] init];
NSString *myDate = [myArray objectAtIndex:12];
date = [dateFormatter dateFromString:myDate];

NSLog(@"%@", date);//this prints out (null)
NSLog(@"%@", myDate);//this prints out the date in the correct format.  

任何人都可以看到我做错了什么吗?

感谢所有回复的人。

3 个答案:

答案 0 :(得分:0)

虽然您的代码也适用于我,但有一点需要注意的是myDate实际上是一个字符串,而日期是一个NSDate。当你这样做时会发生什么:

NSString *dateString = [dateFormatter stringFromDate:date];
NSLog(@"%@", dateString);

答案 1 :(得分:0)

感谢所有回复的人。我发现我得到(null)的原因是我的日期值最初存储为由双引号括起来的字符串。因此,为了解决问题,我必须通过执行以下操作从NSString中删除引号:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *myDate = [myArray objectAtIndex:12];
NSString *myNewDate = [myDate stringByReplacingOccurrencesOfString:@"\"" withString:@""];
NSDate *date = [dateFormatter dateFromString:myDate];

这给了我想要的输出。再次感谢所有评论和回复。

答案 2 :(得分:0)

什么是胡说八道?

NSDate *date = [[NSDate alloc] init];
date = [dateFormatter dateFromString:myDate];

你喜欢创造物品只是为了好玩吗?您认为使用[[NSDate alloc] init]创建的日期会发生什么?