Data de exibição do iPhone usando uma localidade de usuário, mas em outro idioma
-
26-09-2019 - |
Pergunta
Existe alguma solução para exibir para o usuário uma data usando suas configurações de localidade, mas as palavras estão em um idioma diferente?
O que eu quero é exibir para um usuário que configurou en_us Uma data no idioma alemão (nomes de meses, dias da semana, por exemplo).
Solução
Boa pergunta. É possível se você criar primeiro um NSDateFormatter
Com a localidade do usuário (padrão), defina seu estilo e guarde o formato de data atual. Depois disso, defina o local para o idioma que deseja exibir e redefinir o formato da data:
NSDateFormatter *df = [[[NSDateFormatter alloc] init] autorelease];
[df setDateStyle:NSDateFormatterFullStyle];
NSString *usersDateFormat = [df dateFormat];
[df setLocale:[[[NSLocale alloc] initWithLocaleIdentifier(@"de_DE")] autorelease]];
[df setDateFormat:usersDateFormat];
NSString *dateString = [df stringFromDate:[NSDate date]];
Outras dicas
A referência da classe iOS para NSDateFormatter possui código de amostra para isso:
Está na seção de visão geral.
Basicamente, você define manualmente o local e o formatador formata a data fornecida com a localidade.