Usando SimpleDateFormat com MySQL

Pessoal,

Tô trabalhando com Servlets e JSP em um projeto com MySQL.

No MySQL o formato de data é yyyy-mm-dd ou yyyy-mm-dd hh:mm:ss

Eu gostaria de ao usar o Servlet, quando instanciasse um Date
ela fosse formata no formato que apresentei acima.
Não sei bem como usar a classe SimpleDateFormat(String pattern).

Gostaria de usar esse formato tanto para salvar no banco como ajustar
a variável do tipo Date quando fizesse a consulta no MySQL.

Valeu pela ajuda!

Acho que seria mais interessante você usar DateFormat. Dê uma olhada em http://java.sun.com/javase/6/docs/api/java/text/DateFormat.html .

Seria mais ou menos assim:

DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("PT", "BR");
ResultSet result = blaBlaBla();
if(result.next()) System.out.println(df.format(result.getDate("Data")))
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, new Locale("PT", "BR");
PreparedStatement ps = connection.prepareStatement("UPDATE TABELA SET DATA = ?");
String data = bleBleBle();
try {
    ps.setDate(df.parse(data));
} catch(ParseException e) {
    // Trate seu erro aqui
}

Os métodos blaBlaBla() e bleBleBle(), de nomes extremamente descritivos, servem para retornar um ResultSet que tem uma coluna chamada “DATA” e para retornar uma data formatada numa String, respectivamente.

Cara, faz assim oh:

   PreparedStatement ps = connection.prepareStatement("SELECT * FROM registro WHERE data = ?");
   ps.setTimestamp(data);

O comando ps.setTimestamp(data) formata a sua variavel do tipo Timestamp para a configuração correta do teu Banco de Dados, ai tu nao precisa se preocupar com isso!! Mas se isso nao funcionar, o SimpleDateFormat funciona assim:

    SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");
    System.out.println(df.format(data));

Ou seja, na String pattern que eh recebida pela funcao SimpleDateFormat tu deve passar a configuração correta de como tu quer a formatação!! Olha a documentacao da API do SimpleDateFormat que tu vai ver mais detalhes!
Para ficar do jeito que tu quer eh soh colocar desse jeito aki
new SimpleDateFormat(“yyyy-MM-dd HH:mm:ss”);

Onde:
y = ano, entaum yyyy = 2007
M = mes, entaum MM = 03
d = dia, entaum dd = 22
H = hora no formato 24, entaum HH =20
m = minutos, entaum mm = 30
s = segundos, entaum ss = 00
h = hora no formato 12, entaum hh = 8

Abraço!