Pregunta

Esto puede ser muy sencilla. He buscado y no encontrado todavía.

¿Cómo se convierte el NSString @ "20100216190205" a un formato de NSString @ "aaaa-MM-dd hh: mm: ss".

es decir: @ "2010-02-16 19:02:05"

EDIT: Quería evitar el uso de la NSDateFormatter a ser más genérico, para otras situaciones.

¿Fue útil?

Solución

A título meramente un ejercicio de escritura de código:

NSString* digits = @"20100216190205"; // this is probably a parameter somewhere
NSMutableString* formatted = [digits mutableCopy];
[formatted insertString:@":" atIndex:12];
[formatted insertString:@":" atIndex:10];
[formatted insertString:@" " atIndex:8];
[formatted insertString:@"-" atIndex:6];
[formatted insertString:@"-" atIndex:4];
NSLog(@"original string: %@ -> formatted: %@", digits, formatted);

Pero estoy de acuerdo:. Ir fácil en usted mismo y utilizar un formateador fecha para este

Otros consejos

Puede extraer cada subcadena, convertirlos en números enteros (-intValue), a continuación, utilizar NSDateComponents para convertirlos en una fecha. Y es mucho más problemático que el uso de NSDateFormatter.

En su caso, el formato de la NSDateFormatter necesita ser ajustado en yyyyMMddHHmmss antes de llamar -dateFromString:, es decir.

[formatter setDateFormat:@"yyyyMMddHHmmss"];
NSDate *date = [formatter dateFromString:@"20100216190205"];
....

Se tendrá que establecer el formato de la formatter a aaaaMMddHHmmss analizar la cadena que tiene en su ejemplo. Tendrá que crear un nuevo formateador o modificar el formato del formateador originales para incorporar el más atractivo a la vista que desee (@"yyyy-MM-dd HH:mm:ss").

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top