iphone NSDate转换问题

时间:2011-05-20 06:45:30

标签: iphone objective-c ios nsdate nsdateformatter

在我的图表Api for facebook ..

我收到这些数据.. 来自Json ..
"updated_time" = "2011-05-17T14:52:16+0000";

我正在使用此代码将其转换为有效的日期格式

NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
//2010-12-01T21:35:43+0000  
[df setDateFormat:@"yyyy-mm-ddHH:mm:ssZZZZ"];
NSDate *date = [df dateFromString:[[forTable valueForKey:@"updated_time"] stringByReplacingOccurrencesOfString:@"T" withString:@""]];
[df setDateFormat:@"eee MMM dd, yyyy hh:mm"];
pastDate = [df stringFromDate:date];
NSLog(@"and the date string is %@",pastDate);

它在控制台中给我这个结果

and the date string is Mon 01 17, 2011 08:22

虽然json值给了我May的日期。这段代码给了我1月的日期

谁能告诉我这里发生了什么?

2 个答案:

答案 0 :(得分:11)

看起来您的日期格式字符串没有考虑字母“T” - 您可能应该在撇号之间包含文字文本,只是为了安全起见。尝试:

[df setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ssZZZZ"];

答案 1 :(得分:1)

日期格式错误,应该是当月的资本女士:

[df setDateFormat:@"yyyy-MM-ddTHH:mm:ssZZZZ"];