NSDateFormatter da diferentes valores en el dispositivo y simulador? ¿En qué consiste el trabajo?

StackOverflow https://stackoverflow.com/questions/1803169

Pregunta

Estoy usando NSDateFormatter, el problema es con su consistencia. Si utilizo kCFDateFormatterMediumStyle, da el formato como " 26 de noviembre de 2009 " en el simulador pero en el dispositivo da " 26-nov-2009 " ;.

Ahora tengo la pregunta: ¿Es esto un medio confiable de NSFormatter en el futuro cercano o las actualizaciones de Apple pueden cambiar el estilo nuevamente?

¿Fue útil?

Solución

NSDateFormatter formatea la fecha según las preferencias del usuario, según la configuración internacional del dispositivo. Como tal, nunca puede esperar que esta cadena sea coherente debido a la cantidad de formas diferentes en que se muestran las fechas en todo el mundo.

He encontrado que la mejor manera de formatear una fecha como una cadena (para usar para dar a servidores web, etc.) es usar NSDateComponents y convertirlos en cadenas.

Otros consejos

Si bien la otra respuesta mencionada anteriormente es técnicamente correcta, no le brinda la solución que está buscando. Si bien el valor predeterminado de NSDateFormatter es usar configuraciones regionales de usuario (y, como tal, no le dará resultados útiles), puede solicitar una configuración regional específica para obtener resultados consistentes:

NSDateFormatter *frm = [[NSDateFormatter alloc] init];
[frm setDateFormat:@"EEE MMM dd HH:mm:ss ZZZ yyyy"];

NSLocale *en_US = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
[frm setLocale:en_US];
[en_US release];
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top