2011-03-20 47 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