2011-03-20 18 views
5

¿Cómo convertiría @ "20090302" a @ "2009/03/02" o a @ "02/03/2009"?Vuelva a formatear NSString que representa una fecha

he encontrado la solución y esta es la actualización

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

[formatter setDateFormat:@"YYYYMMDD"]; 



NSDate *date = [formatter dateFromString:yourinoutstring]; 


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

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

Duplicado: http://stackoverflow.com/questions/1353081/nsstring-to-nsdate – Blender

+0

Necesito que la salida también sea nsstring – Ali

+2

Luego convierta 'NSString -> N SDate -> NSString'. ¿Para qué estás usando la fecha? – Blender

Respuesta

7

Usted tendrá que utilizar un NSDateFormatter para este propósito.

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

[formatter setDateFormat:@"YourDateInputFormat"]; 

Donde se puede averiguar lo que debería haber @"YourDateInputFormat" mediante la lectura de la Guía de formato a los datos, Date Formatters chapter. Se obtiene una NSDate de que:

NSDate *date = [formatter dateFromString:yourString]; 

a continuación, cambiar el formato del formateador para dar la salida que desea:

[formatter setDateFormat:@"YourDateOutputFormat]; 

Entonces usted puede convertir esa fecha y obtener la cadena que desea:

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

gracias su respuesta me ayudó, pero es código obsoleto Utilizo ios 4.2 – Ali

+0

'-initWithDateFormat: allowNaturalLanguage:' es solo para el comportamiento del formateador anterior a 10.4. Necesita usar '-init' y' -setDateFormat: 'por separado. –

+0

@Dave: gracias por señalar eso. Lo siento, Ali. He editado mi respuesta. –

Cuestiones relacionadas