0

我在一个格式为“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.  

我做错了什么?

4

3 回答 3

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];

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

于 2013-10-07T20:21:09.573 回答
0

这是什么废话?

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

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

于 2014-02-19T10:36:54.937 回答
0

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

NSString *dateString = [dateFormatter stringFromDate:date];
NSLog(@"%@", dateString);
于 2013-10-04T21:20:43.223 回答