2011-03-20 48 views
5

如何將@「20090302」轉換爲@「2009/03/02」或@「02/03/2009」?重新格式化表示日期的NSString

我找到了解決辦法,這是更新

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 

[formatter setDateFormat:@"YYYYMMDD"]; 



NSDate *date = [formatter dateFromString:yourinoutstring]; 


[formatter setDateFormat:@"DD/MM/YYYY"]; 

NSString *outDate = [formatter stringFromDate:date]; 
+0

已回答重複:http://stackoverflow.com/questions/1353081/nsstring-to-nsdate – Blender 2011-03-20 13:51:05

+0

我需要的輸出也是nsstring – Ali 2011-03-20 13:54:07

+2

然後轉換'NSString - > N SDate - > NSString'。你在用什麼日期? – Blender 2011-03-20 13:54:57

回答

7

你將要使用的NSDateFormatter用於此目的。

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 

[formatter setDateFormat:@"YourDateInputFormat"]; 

如果你能弄清楚@"YourDateInputFormat"應該是通過讀取數據格式指南,Date Formatters chapter什麼。你從得到一個NSDate

NSDate *date = [formatter dateFromString:yourString]; 

然後改變格式的格式給你想要的輸出:

[formatter setDateFormat:@"YourDateOutputFormat]; 

然後你可以轉換日期和得到你想要的字符串:

NSString *outString = [formatter stringFromDate:date]; 
+0

謝謝你的答案幫助了我,但它是過時的代碼我使用ios 4.2 – Ali 2011-03-21 08:32:19

+0

'-initWithDateFormat:allowNaturalLanguage:'只適用於10.4之前的格式化程序行爲。你需要單獨使用'-init'和'-setDateFormat:'。 – 2011-03-21 17:19:49

+0

@Dave:謝謝你指出。對不起,阿里。我編輯了我的答案。 – 2011-03-21 18:09:42