NSDateFormatter dá valores diferentes no dispositivo e simulador? O que é em torno do trabalho?

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

Pergunta

Eu estou usando NSDateFormatter, o problema é com sua consistência. Se eu usar o kCFDateFormatterMediumStyle dá o formato como "26 de novembro de 2009" no simulador, mas no dispositivo que dá "26-Nov-2009".

Agora eu tenho a pergunta, isso é meio confiáveis ??NSFormatter em futuro próximo ou atualizações da Apple pode ele alterar o estilo de novo?

Foi útil?

Solução

NSDateFormatter formata a data com a preferência do usuário, com base nas configurações internacionais no dispositivo. Como tal, você nunca pode esperar essa string para ser consistente por causa da quantidade de diferentes maneiras que as datas são exibidas em todo o mundo.

Eu encontrei a melhor maneira de formatar uma data como uma string (para usar para dar aos servidores web etc) é usar NSDateComponents e convertê-los para strings.

Outras dicas

Enquanto a outra resposta mencionado acima é tecnicamente correto, ele não lhe dá a solução que você está procurando. Enquanto os padrões NSDateFormatter a usar localidades de usuário (e é, como tal, não vai lhe dar resultados úteis), você pode solicitar um local específico para obter 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top