Gostaria de formatar meu java.util.Date no formato DD/MM/YYYY de acordo com o Locale, ou seja, se o locale for en fica MM/DD/YYYY e se for pt fica DD/MM/YYYY.
Gostaria que o DateFormat (ou qualquer outra coisa) fizesse isso pra mim, pois não quero ter que me preocupar qual é o formato dessa data na nova zelândia.
Tem como fazer isso em Java ???
Não vale usar SimpleDateFormat no meio de um IF. Isso é exatamente o que eu não quero. Quero uma classe que já me dê isso pronto, pois não quero ter que pesquisar os formatos para cada país.
import java.text.*;
import java.util.*;
/**/
Date data = new Date();
Properties ps = System.getProperties();
Locale local = new Locale((String)ps.get("user.country"), (String)ps.get("user.language"));
DateFormat hoje = DateFormat.getDateInstance(DateFormat.MEDIUM, local);
System.out.println(hoje.format(data));
Só é em style usar algum dos estilos pré-definidos (SHORT,MEDIM,LONG) e no locale aí vai variar de acordo com o ambiente. Se for Desktop o jeito que quebrado resolveu fica blz e se for Web e ainda mais com o Mentawai aí não preciso nem dizer, é só corre pro abraço
Date data = new Date();
Properties ps = System.getProperties();
Locale local = new Locale((String)ps.get(“user.country”), (String)ps.get(“user.language”));
DateFormat hoje = DateFormat.getDateInstance(DateFormat.MEDIUM, local);
System.out.println(hoje.format(data));
[/code][/quote]
Não! O código abaixo imprimiu Aug 6, 2006 para en e 06/08/2006 para pt.
Date d = new Date();
DateFormat df1 = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("en", "US"));
DateFormat df2 = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("pt", "BR"));
System.out.println("en: " + df1.format(d));
System.out.println("pt: " + df2.format(d));
Aproveitando o tópico sobre formatação de datas, estou com um pequeno problema usando o Hibernate.
Eu pego minha data no banco que está no formato (yyyy-MM-dd) e gostaria que fosse mostrado no formato dd/MM/yyyy.
Usando o SimpleDateFormat funciona, só que qdo. formata para String, tipo isso: