2014-05-16 34 views
-2

日期?我怎样才能从以下日期的日期“2014-05-16T16:15:07 + 01:00”充分利用字符串目标C

我使用NSDateFormatter,如下图所示,但它没有工作。结果为null。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss'Z'"]; 
[dateFormatter dateFromString:sDate]; 
+0

关于解析这种日期格式有无数的问题。请搜索。你为什么在你的格式中引用'Z'?你的日期字符串中是否有“Z”字面值?编号 – rmaddy

+0

有一个非常令人兴奋的新事物称为“谷歌”。你可以试试看。 –

+0

这个问题似乎是无关紧要的,因为如果他只想找到信息,OP很容易获得信息。 –

回答

1

在你的日期格式字符串删除周围Z单引号:

NSString *sDate = @"2014-05-16T16:15:07+01:00"; 

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZZZ"]; // 5 Zs is technically correct here. 
NSDate *result = [dateFormatter dateFromString:sDate]; 

NSLog(@"result: %@", result); //result: 2014-05-16 15:15:07 +0000 

当你引用的Z,日期格式预计,在输入字符串字面“Z”字,而不是时间区域作为GMT的偏移量,这是您的日期字符串包含的。

+0

返回的结果是:(null)“ –

+0

@NabilEl,不在我的10.9.3机器上。我的答案中的代码以及NSLog行注释中的输出直接从我编译和运行的源代码文件及其输出中复制和粘贴。你可以在这里看到整个事情:https://gist.github.com/armadsen/0c93770b2d70b340c081 –