Fecha de String a Date

Hola, tengo el siguiente código:

 
Resulta que me imprime en pantalla el valor: 09/02/2015

pero cuando la variable dates tiene el siguiente valor: Sep 2, 2015 12:00:00 AM, de esta forma no me sirve debido a que necesito esa fecha con el formato MM/dd/YYYY para hacer una comparacion posterior pero no entiendo el porque no me esta haciendo el parse correctamente, me refiero a esta linea:
dates = dateFormat.parse(strDate);

Alguna sugerencia?

Muchas gracias.

Saludos.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

No entiendo del todo tu

No entiendo del todo tu pregunta, la pregunta es: porque no hace el parse correctamente cuando haces esto:

 

?

Parece que eso es lo que preguntas pero tu mismo escribes que es porque no tiene el formato MM/dd/yyyy

Podrías aclarar tu pregunta? Escribe un programa entero y di: "esto me funciona así" y pon el código y la salida, y luego "esto otro no funciona" y escribe el programa y la salida. De otra forma solo podemos adivinar lo que quieres decir.

Cuando escribas código en este foro puedes usar el tag <code> para que el post salga con formato.
Saludos

Esto me salio

Pues copie tu codigo y puse el valor que no te da el resultado y si me imprimio lo que necesitas.

No se si sea esto a lo que te refieras.

Fecha

Hola.

Lo que puedo observar en tu código es el formato que le estas dando a la fecha.

 

por esa razón te aparece la fecha "09/02/2015"

cambia tu formato de fecha:

 

si estas ocupando jdk 8 deberias hacer uso de LocalDate:

Ejemplo:

 

LocalDate java 8

Saludos

Imagen de rasilvap

Realmente mi problema es

El verdadero problema es que la escritura me la está haciendo en el formato correcto: Me refiero a 09/02/2015 (MM/dd/yyyy), pero la variable Dates sigue conservando la fecha con el formato original: Sep 2, 2015 12:00:00 AM y cuando asigno esta variable a otro objeto, este me quedaría con ese valor y no con 09/02/2015 como lo hace únicamente en la escritura.

Es posible lograr que una variable Date realmente almacene la fecha con el valor que deseamos? o solamente es posible hacer esto para la escritura?

Muchas gracias.

Saludos.

El objeto Date no tiene

El objeto Date no tiene internamente una representación de la fecha, sino que tiene un número de milisegundos desde una fecha x. El formato se lo das al asignarlo a una variable de tipo String, y el formato que está viendo es que regresa del método toString() de la clase Date

Converts this Date object to a String of the form:
dow mon dd hh:mm:ss zzz yyyy

Si quieres hacer comparaciones entre fechas, puedes hacerlo directamente sobre objetos de tipo Date, no lo hagas sobre sus conversiones a String pues tendrás estos problemas.

Mejor aún, ( como ya lo mencionó joseantonio ) java tiene desde la versión 8 una biblioteca para hacer comparaciones (java.time.LocalDate) que ya tiene métodos para saber si una fecha esta antes de otra o para que le restes minutos, horas, etc.

Si nos dices que intentas hacer quizá te podamos ayudar con algún ejemplo.

Saludos.

Imagen de rasilvap

No puedo usar java 8

Muchas gracias por sus respuestas, lo que sucede es que estoy haciendo una migración y se está utilizando java 6, la migración la hacen unos web services, mi problema es que debo enviarle el date con un determinado formato al WS, yo no puedo tocar la lógica de ese WS ya que no tengo acceso a la misma, solo tengo acceso al método desde el endpoint, no se si exista alguna forma de entregarle a ese WS la fecha Date con el formato que necesito,

Entiendo lo del método to Strring, se que es solo para escritura el DateFormat dado, pero no se de que forma puedo darle un formato al objeto Date como el que necesito ya que como estaba anteriormente si se le entregaba al servicio la fecha en ese formato, en este momento el WS me arroja un error de formato, alguna validación que se hace por debajo.

Muchas gracias.

Saludos

Imagen de ezamudio

SimpleDateFormat

Si tú tienes un objeto   y lo quieres convertir a String, lo único que necesitas es un   con el formato que espera el WS y luego invocas  , por ejemplo:

 

Sólo ten cuidado porque el  no es thread-safe.