2013-07-12 74 views
-5

我希望使用nsdateformatter2013-07-10T21:48:09.000Z轉換爲10.7.2013在Objective-C中使用NSDateFormatter

我試過了一些教程,但我似乎無法弄清楚該怎麼做,我該如何正確地做這種轉換?

任何幫助,非常感謝。

我試過,但我只得到返回的(null)

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:000Z"]; 
    NSDate *theDate = [dateFormatter dateFromString:stringDate]; 
    NSLog(@"%@",[dateFormatter stringFromDate:theDate]); 
+0

請鏈接到你使用 – Stephan

+0

看看這裏的教程,例如:http://stackoverflow.com/questions/3094819/nsdateformatter -returning-nil-in-os-4-0 – onitake

+0

你的格式中缺少一秒鐘的部分。 – Eimantas

回答

1

首先,你的日期格式是錯誤的 - 第二行應該是[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.000Z"]; - 也就是說,你需要的ss.mm:之後,但在000Z。這會給你正確的NSDate。

接下來,你需要創建與格式@"dd.M.yyyy"新的日期格式(或@"d.M.yyyy"如果你想刪除前的0的天是一個單一的數字爲好),並呼籲,對於NSLog的stringFromDate:

只是爲了回顧一下,整個代碼塊將

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.000Z"]; 
NSDate *theDate = [dateFormatter dateFromString:stringDate]; 

NSDateFormatter *printFormatter = [[NSDateFormatter alloc] init]; 
[printFormatter setDateFormat:@"dd.M.yyyy"]; 
NSLog(@"%@",[printFormatter stringFromDate:theDate]); 
+0

它返回'2013-07-10T21:48:09.000 + 0000',我需要它返回'10 .7.2013' – IamGretar

+0

@IamGretar糟糕,沒有明白 - 我以爲你只是想要正確的NSDate。我已經更新了我的答案。 – gtmtg

+0

不需要成爲新的NSDateFormatter - 只需將新格式設置爲舊格式即可。 –