NSDateFormatter " Mes " en 3 letras en lugar de palabra completa
NSDateFormatter* formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"dd-MM-YYYY HH:mm"];
[formatter setTimeZone:[NSTimeZone systemTimeZone]];
Si elijo " MM "obtengo el mes en número:" 09-05-2012 15 :33" Si elijo "MMMM" obtengo el mes en word:"09-May-2012 15: 33"
Lo que quería era el mes en abreviatura de 3 letras.
Por ejemplo:" Enero "sería" Enero "
En este caso May es correcto porque solo tiene 3 letras.
6 answers
Has intentado: [formatter setDateFormat:@"dd-MMM-YYYY HH:mm"];
y luego [formatter stringFromDate:someNSDate];
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-09 15:00:04
SI obtienes las dos cosas en el orden incorrecto, no obtienes la salida esperada.
[formatter setDateFormat:@"MMM"];
[formatter setDateStyle:NSDateFormatterMediumStyle];
NO da los mismos resultados que:
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setDateFormat:@"MMM"];
(El segundo de estos dos fragmentos ahora está felizmente repartiendo Sep Oct, etc. en mi aplicación)
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-21 16:47:41
In SWIFT
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "dd MMM yyyy HH:mm"
dateFormatter.stringFromDate(NSDate())
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-09 10:07:10
Esta es una solución simplificada que funciona con Swift 4 para producir una salida mensual de 3 letras:
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd MMM YYYY, HH:mm:ss"
Y para verificar:
print(dateFormatter.string(from: Date())) // 20 Mar 2018, 23:41:40
Como se señaló anteriormente, MMM
es la sintaxis correcta para obtener la salida del mes deseado.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-21 06:43:47
En realidad, puede establecer su estilo de datos en medio (es decir, 'Jan', 'Feb', etc.) de la siguiente manera:
[formatter setDateStyle:NSDateFormatterMediumStyle];
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-05-09 15:03:45
Para swift 4 ir con:
if let dateFormatter = DateFormatter(){
dateFormatter.dateStyle = .medium
// eventually:
//let locale = Locale(identifier: ...
//dateFormatter!.locale = locale
dateFormatter.dateStyle = .medium
dateFormatter!.dateFormat = "dd MMM YYYY, HH:mm:ss"
} else..
..
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-13 15:35:35