Cambiar el formato de Fecha Java

Tengo el objeto Date con el formato

/107/2013 12:00:00 AM 

Valor esperado para mí:

 2013-07-01 

¿Cómo hago esto?

Estoy intentando con este 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; } 

Cuando bash hacer una prueba, obtengo esto:

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

Actualizar:

mi problema estaba en sql cambiar a java.util.Date a java.sql.Date
Resuelvo esto así:

 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; } 

Y prueba:

 stringToSQLDate( formatearFecha( myDate ) ); 

Antes que nada: el objeto java.util.Date nunca tiene un formato almacenado en él. Puede pensar en Fecha como un objeto que contiene un valor largo de milisegundos desde época en la zona horaria UTC. La clase tiene pocos métodos, pero no cuenta con un offset de zona horaria, un patrón formateado, etc.

En segundo lugar, puede usar el siguiente código básico para formatear una fecha en aaaa-MM-dd en la configuración regional de su máquina:

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

Del mismo modo, puede analizar una cadena “/ 107/2013 12:00:00 AM” en un objeto de fecha en la configuración regional de su máquina de esta manera:

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

Dos métodos anteriores se pueden usar para cambiar una cadena de fecha formateada de una a otra.

Consulte el javadoc para SimpleDateFormat para obtener más información sobre los códigos de formato.

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