Alterar o formato do Date Java

Eu tenho o object Date com o formato

/107/2013 12:00:00 AM 

Valor esperado para mim:

 2013-07-01 

Como eu faço isso?

Estou tentando com esse código

 public static Date formatearFecha( Date fecha ){ String fechaString = new SimpleDateFormat("yyyy-MM-dd").format(fecha) ; DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Date fechaFormateada = null; try { fechaFormateada = df.parse(fechaString); } catch (ParseException ex) { Logger.getLogger(TestThings.class.getName()).log(Level.SEVERE, null, ex); } return fechaFormateada; } 

Quando tento fazer um teste, recebo isto:

  System.out.println( formatearFecha(myDate) ); Mon Sep 30 00:00:00 COT 2013 

Atualizar:

meu problema estava em sql mudar para java.util.Date para java.sql.Date
Eu resolvo isso assim:

 private String formatearFecha( Date fecha ){ return new SimpleDateFormat("yyyy-MM-dd").format(fecha); } private java.sql.Date stringToSQLDate( String fecString ){ java.sql.Date fecFormatoDate = null; try { SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd", new Locale("es", "ES")); return new java.sql.Date(sdf.parse(fecString).getTime()); } catch (ParseException ex) { } return null; } 

E teste:

 stringToSQLDate( formatearFecha( myDate ) ); 

Primeiro de tudo: o object java.util.Date nunca possui um formato armazenado nele. Você pode pensar em Data como um object que contém um valor longo de milissegundos desde a época no fuso horário UTC. A class tem poucos methods, mas nenhum deslocamento de fuso horário, padrão formatado, etc. armazenado nela.

Em segundo lugar, o código básico a seguir pode ser usado para formatar uma data para aaaa-MM-dd na localidade da sua máquina:

 Date mydate = ... DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); String mydateStr = df.format(mydate); 

Da mesma forma, você pode analisar uma string “/ 107/2013 12:00:00 AM” em um object de data na localidade da sua máquina assim:

 String mydateStr = "/107/2013 12:00:00 AM"; DateFormat df = new SimpleDateFormat("/dMM/yyyy HH:mm:ss aa"); Date mydate = df.parse(mydateStr); 

Dois methods acima podem ser usados ​​para alterar uma string de data formatada de uma para outra.

Veja o javadoc para SimpleDateFormat para mais informações sobre códigos de formatação.

 Date myDate = ....... DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); System.out.println(dateFormat.format(myDate));