Pessoal estou com um problema relaciona a formatação de datas… eu tenho uma data Date e preciso formatar ela para uma string porem nao posso fixar meu pattern no codigo pois o sistema é internacionalizado eu preciso de algo que eu passo a locale, e um pattern padrão(ingles) e ele formata transformando aquele pattern para a locale respectiva… alguem sabe o que pode solucionar meu problema???
ai quando eu formato um numero assim: df.format(value)
ele formata colocando virgula ou ponto! de acordo com o locale!! eu preciso disso na data!!!
rsakurai
O que vc passa na String pattern do DecimalFormat?
e-cowboy
Opa, seguinte a aplicação é desktop ou web?
se for desktop você pode obter as configurações de locale e format da própria máquina, se for web ai acredito que você precise utilizar o properties, senão ele vai utilizar a configuração do servidor!
Exemplo para desktop
publicstaticvoidmain(String[]args){//você pode definir qual o locale//Locale locale = Locale.US; //ou pegar o locale default da máquinaLocalelocale=Locale.getDefault();//define o tipo de formatação, SHORT, FULL ... e o passa o localeDateFormatdf=DateFormat.getDateInstance(DateFormat.SHORT,locale);System.out.println(df.format(newDate()));}
B
Bruno_Laturner
O DateFormat vem com alguns padrões pré-definidos, mas parece que só o SHORT chega perto do que você quer. Acho que a solução é um ResourceBundle com os padrões de formatação definidos lá.
A
arthurnn
eu passo o patern em ingles !! que é o default dele, assim:
###,###,##0.00
rsakurai
Esse é o padrão que vc segue para números, se vc tivesse um formato diferente para cada locale esse padrão fixo no codigo seria um problema, pois vc teria que procurar por todos os locais que usam ele.
Exemplo, se alguém te pede para colocar o sinal de dolar $ ou de real R$ na frente do número de acordo com o locale.
Se vc tiver um arquivo de properties separado para cada locale, e em cada arquivo properties vc colocar o padrão daquele locale, vc so tem que consultar desse property e se for necessario alterar o padrão isso será feito em um unico lugar.
Isso concerteza vai te dar um trabalhindo no começo, mas depois vai trazer varias vantagens.