Gente, to postando esse tópico pq li dezenas de outros e ainda não achei o que queria.
O problema é o seguinte: tenho um cadastro de usuários em um db SQL SERVER com o campo NASCIMENTO, que é do tipo smalldatetime.
o conteúdo deste campo varia entre nulo e a data.
quando peço para retornar o valor do campo, retorna 1900-01-01 00:00:00.0, por exemplo.
E eu preciso dele formatado de acordo com o locale definido (que no caso do meu sistema pode ser pt-BR ou en-US.
Já tentei usar vários métodos, e nenhum deles dá certo.
Alguém tem alguma dica bem simples de como fazer isso?
Tentei com o seguinte código:
Locale bLocale = new Locale("pt", "BR");
forma = "2004-05-05";
SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
java.sql.Date dataConvertida = new java.sql.Date(df.parse(forma).getDate());
e dá o seguinte erro:
java.text.ParseException: Unparseable date: "2004-05-05" at java.text.DateFormat.parse(DateFormat.java:335)
Já perdi a tarde inteira e nada de conseguir formatar essa bendita data 
Converter string pra data, que é outra coisa que quero fazer,tb não tá dando certo.
Alguém me dá um help?
se não me engano vc está tentando criar uma data com o valor formatado. uma data é independente de Locale, vc só deve formatar a data no momento em que for exibi-la. A formatação sim depende da Localidade…
pois eh, continuo boiando.
Tentei usar o exemplo do site da Sun:
Date today;
String dateOut;
DateFormat dateFormatter;
dateFormatter = DateFormat.getDateInstance(DateFormat.DEFAULT, bLocale);
today = new Date();
dateOut = dateFormatter.format(today);
out.println("Data formato padrão: "+dateOut + " " + bLocale.toString()+"<br>");
o problema é que não consigo converter a string pra data. Mesmo que eu use um getDate pra pegar o valor do campo, tem horas que eu tenho uma string com o valor, e não o objeto data.
rashi dê uma olhada.
DateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", new Locale("pt","br"));
long timestamp = dateFormat.parse("12/06/2004").getTime();
java.sql.Date dataConvertida = new java.sql.Date( timestamp );
AlcidesFlach
Valeu pessoal
Consegui resolver do seguinte jeito:
SimpleDateFormat formatter;
String pattern = "yyyy-MM-dd";
Locale bLocale = new Locale("pt","BR");
Date today;
formatter = new SimpleDateFormat(pattern, bLocale);
today = new Date();
today = formatter.parse(data);
pattern = "dd/MM/yyyy";
formatter = new SimpleDateFormat(pattern, bLocale);
retorno = formatter.format(today);
Ficou esquisito, mas só funcinou assim 