2015-09-20 55 views
1

從服務器獲得的字符串格式爲「2015-11-09 06:54:00 UTC」I要轉換將日期格式轉換爲日期格式爲「2015-11-09 06:54:00 UTC」至NSDate

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ"; 
NSDate* date = [dateFormatter dateFromString:dateString]; 
[dateFormatter setDateFormat:@"dd MMM yyyy hh:mm a"]; 
NSString* formattedDate = [dateFormatter stringFromDate:date]; 

我帶日期格式試圖成爲dateFormatter.dateFormat = @"yyyy-MM-dd'T'HH:mm:ssZ";

不過我得到的格式化的日期作爲零。

我不明白如何將此字符串轉換爲合適的NSDate。請建議。

回答

2

嘗試下面的代碼片段;

NSString *dateString = @"2015-11-09 06:54:00 UTC"; 
NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init]; 
dateFormatter.dateFormat = @"yyyy-MM-dd HH:mm:ss Z"; 
NSDate* date = [dateFormatter dateFromString:dateString]; 
dateFormatter setDateFormat:@"dd MMM yyyy hh:mm a"]; 
NSString* formattedDate = [dateFormatter stringFromDate:date]; 
NSLog(@"Formatted Date: %@",formattedDate); 
0

我可以說「嘗試下面的代碼」,但這是沒用的。

看看你的格式化字符串。它說明日期格式化程序在字符串中的期望。

看看你的日期字符串。

將它們比較。他們不匹配。格式化字符串中的'T'不是某種黑魔法。這意味着「我期望在日期字符串中有一個字母T」。日期字符串中沒有字母T,這就是爲什麼它不起作用。

仔細閱讀Apple的文檔,並注意它指的是Unicode標準的位置。請仔細閱讀www.unicode.org上的該文檔 - yyyy和YYYY,MM和MMM以及HH和hh之間存在巨大差異,如果您沒有閱讀並學習這些內容,則無法編寫代碼這給出了預期的結果。

+0

格式化程序中的'T'並不意味着字母T應該在日期字符串中。 T只是將日期與時間分開的文字,Z表示「祖魯時間」(UTC)。 – Ashwani