2014-05-16 56 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 –