2012-05-09 35 views
23
NSDateFormatter* formatter = [[NSDateFormatter alloc] init]; 
    [formatter setDateFormat:@"dd-MM-YYYY HH:mm"];   
    [formatter setTimeZone:[NSTimeZone systemTimeZone]]; 

Si decido "MM" me sale el mes en el número: "09-05-2012 15:33" Si decido "MMMM" Me da la mes en palabra: "09-may-2012 15:33"NSDateFormatter "Mes" en 3 letras en vez de palabra completa

Lo que quería, era el mes en 3 letras abreviatura.
Por ejemplo: "Enero" sería "Jan"

En este caso, May es correcto porque solo tiene 3 letras.

+0

Use 'MMM' para el nombre del mes corto – onmyway133

Respuesta

46

Ha intentado: [formatter setDateFormat:@"dd-MMM-YYYY HH:mm"]; y luego [formatter stringFromDate:someNSDate];

+3

M me da el número M MM me da la palabra completa – bruno

+0

Hmm, raro, me funciona ... – graver

+10

Quizás tengas razón, lo estoy intentando con May. Debería usar un mes diferente, pero estoy en el simulador ... – bruno

1

En realidad, usted puede configurar su dateStyle al medio (es decir, 'Jan', 'feb', etc) así:

[formatter setDateStyle:NSDateFormatterMediumStyle]; 
24

Si se obtienen los dos cosas en el orden incorrecto, no obtiene el resultado esperado.

[formatter setDateFormat:@"MMM"]; 
[formatter setDateStyle:NSDateFormatterMediumStyle]; 

no da los mismos resultados que:

[formatter setDateStyle:NSDateFormatterMediumStyle]; 
[formatter setDateFormat:@"MMM"]; 

(El segundo de estos dos fragmentos se felizmente repartiendo sep oct etc en mi aplicación)

3

En SWIFT

let dateFormatter = NSDateFormatter() 

dateFormatter.dateFormat = "dd MMM yyyy HH:mm" 

dateFormatter.stringFromDate(NSDate()) 
Cuestiones relacionadas