2014-01-16 162 views
0

我利用SeatGeek API,以及它們的日期是按以下格式返回:日期格式化返回nil爲specifc日期字符串

"date_tbd" = 0; 
"datetime_local" = "2014-02-08T19:15:00"; 
"datetime_tbd" = 0; 
"datetime_utc" = "2014-02-09T01:15:00"; 

我想將它們轉換爲更具可讀性,如1月18日我的代碼如下:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"en_US"]]; 
[dateFormatter setDateFormat:@"yyyy-MM-ddTHH:mm:ss"]; 

NSDate *date = [dateFormatter dateFromString:fullDateTime]; 
[dateFormatter setDateFormat:@"Mmm dd"]; 

cell.eventDate.text = [dateFormatter stringFromDate:date]; 

但是,日期爲空。因此,eventDate標籤變爲空白。

有什麼想法?我發現自己經常與這些DateFormatters鬥爭。謝謝。

回答

3

T應字面匹配,因此它必須在單引號中的第一個日期格式封閉 :

[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss"]; 

而第二個日期的格式應該是

[dateFormatter setDateFormat:@"MMM dd"]; 

MMM而不是Mmm爲月份的縮寫。

+0

這很好,謝謝。有什麼好的東西,我可以瞭解NSDateFormatter和日期格式字符串的完整? –

+0

@nlabhart:我只知道「官方」文檔:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/DataFormatting/Articles/dfDateFormatting10_4.html#//apple_ref/doc/uid/TP40002369 「數據格式指南」中的-SW1和Unicode參考:http://www.unicode.org/reports/tr35/tr35-25.html#Date_Format_Patterns。 –

+0

非常感謝您的幫助。 –