2011-02-04 9 views
7

La cadena que viene de mi fuente de datos está formateado como esto:NSDateFormatter dateFromString

2011-04-11 23:12:05

// dateString comes from my data source, and look like I've said like this. 
dateString = @"2011-04-11 23:12:05"; 

NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; 
[formatter setDateFormat:@"MMMM"]; 

NSDate *date = [formatter dateFromString:dateString]; 

Cuando He buscado en internet después de hilos como estos, la respuesta siempre ha sido que dateString tenía un formato incorrecto. Pero mi dateString es uno de los correctos, ¿verdad?

¿Por qué la fecha devuelve nil?

Respuesta

17

Una cadena de formato de fecha de @"MMMM" significa que la cadena que está tratando de analizar es el nombre completo de un mes ("Enero", "Octubre", etc.).

quieres algo más como:

yyyy-MM-dd HH:mm:ss 

Mira la date formatting patterns para obtener más información.

+0

Debería haber mencionado que deseaba tener un NSString con el nombre de mes completo de mi * dateString. –

+0

dateFromString producirá un NSDate, no una cadena. – xyzzycoder

+0

Mi idea era que si convertía la cadena a una fecha, y la línea después de convertir la fecha al nombre del mes (cadena). Pero no puedo pasar el primer paso. ¿Estás conmigo? –

1
// set norwegian locale 
    dateFormatter.locale=[[NSLocale alloc] initWithLocaleIdentifier:@"no_NO"];; 

    [email protected]"MMMM"; 
    NSString * monthString = [[dateFormatter stringFromDate:date] capitalizedString]; 
    NSLog(@"month: %@", monthString); 

Este es un ejemplo noruego. Con su idioma debería ser "se_SE"

Cuestiones relacionadas