iOS 5 Rompiendo NSDateFormatter?
-
25-10-2019 - |
Pregunta
Tengo un problema con NSDateFormatter y iOS.De hecho, encontré un reconocimiento Y una explicación del problema aquí:
http://www.cocoanetics.com/2011/12/ios-5-breaking-nsdateformatter/
Sin embargo, mi cerebro no es capaz de procesar esta información para traducir que todos a una solución para mi situación particular.Espero que los chicos de 'n chicas puede ayudarme a salir de aquí:
Podría alguien decirme cómo hacer el siguiente trabajo en iOS5?Solía estar funcionando bien:
NSLocale *myLocale = [[NSLocale alloc] initWithLocaleIdentifier:@”en_GB”];
[inputFormatter setLocale: myLocale];
[myLocale release];
[inputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSDate *formattedDate = [inputFormatter dateFromString: feedDateString];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"EEEE d MMMM"];
La cadena de entrada, que está más allá de mi control, sería algo así como "Tue, 03 Jan 2012 00:00:00 +0100" Cuando me registro [outputFormatter stringFromDate:formattedDate] me pongo null
El original de la configuración Regional fue "es_es", pero he cambiado que en la esperanza de que eso iba a ayudar.
También sería ayudar a la gente en este post, que parece ser un callejón sin post:
Solución 2
Para todos ustedes, después de haber pasado el tiempo del cerebro en esto: todo fue mi estúpida culpa: la cadena de entrada que debía formatearse no era "lunes, 13 de febrero de 2012 00:00:00 +0100" pero en realidad era "lun, lunes, 13 de febrero de 2012 00:00:00 +0100 "¿Ves? Bueno, no vi los espacios blancos finales durante NSLOGGing. [Ironía: ¡los muchos espacios y el regreso después de la cadena tampoco se muestran aquí!
Y de alguna manera, a IOS 4 no le importaba. iOS5 es mucho más quisquilloso y probablemente con razón. Entonces resolví la cosa de la siguiente manera:
NSString *trimmedString = [inputstring stringByTrimmingCharactersInSet:
[NSCharacterSet whitespaceAndNewlineCharacterSet]];
Espero que esto pueda ser de ayuda para ti también.
Otros consejos
Prueba esto:
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
NSString *str = [outputFormatter stringFromDate:[NSDate date]];
/*
Do something with this string
*/
[outputFormatter release];
También puede agregar región agregando setlocale Parámetro a NSDateFormatter.
NSLocale *myLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_GB"];
NSDateFormatter *outputFormatter = [[NSDateFormatter alloc] init];
[outputFormatter setDateFormat:@"EEE, dd MMM yyyy HH:mm:ss Z"];
[outputFormatter setLocale: myLocale];
NSString *str = [outputFormatter stringFromDate:[NSDate date]];
/*
Do something with this string
*/
[outputFormatter release];
[myLocale release];