Date format

juanmanuelsanchez
19 de Febrero del 2005
hola a todos ! tengo este código:

String sfecha2= (sdia2+"/"+smes2+"/"+saño2);
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("dd/MMM/yyyy");
java.sql.Date datNac = new java.sql.Date(sdf.parse(sfecha2).getTime());
sesion.setAttribute("fecha",datNac);

El problema es q el atribute cuando lo imprimo me saca 2005-02-18

Alguien sabe porque ?

Gracias

nicokiki
19 de Febrero del 2005
Hola!!!!!!!!!!!

Te funciona con el pattern "dd/MMM/yyyy" ??? Te digo porque pusiste 3 meses

Salu2!!!!!!!!

juanmanuelsanchez
19 de Febrero del 2005
si pones mas de tres M el sistema lo coje como un String asi q poner mas da igual.

nicokiki
19 de Febrero del 2005
Hola de nuevo!!!!!!!!

El String q vos le pasas es como vos queres formatear la fecha. No es lo mismo "dd/MM/yyyy" que "yyyy/dd/MM" que "yyyy/MM/dd" . Es el 'pattern" q tendra la fecha. Si es importante. Fijate de cambiar eso a ver q pasa, pero supuestamente no deberias tener el problema q tenes. Porque esta actuando como si le hubieras pasado esto: "dd-MM-yyyy" y no esta bien entonces asumo q puede ser la M de mas

Salu2!!!!! y responde a ver si fue eso

juanmanuelsanchez
19 de Febrero del 2005
hola ! no hay ninguna M de mas ... el mes es un String como enero. Para q la fecha pueda aceptar ese tipo de parametros tienes que poner 3 M que significa String.

El pattern como ya dices esta bien asi que no se cual es el problema

nicokiki
19 de Febrero del 2005
Hola de nuevo!!!!!

Lei el JAVADOC de SimpleDateFormat y vi q tenes razon en cuanto a la triple M. La pregunta es si se banca poner 15/enero/2005 o algo asi. En los ejemplos q ponen no esta tu caso especifico, pero proba pasandole otras cosas a ver como anda.

Salu2!!! y perdon por la equivocacion

Lemony Snicket
19 de Febrero del 2005
Hola,...

El problema que tienes no es tal problema. Lo que ocurre es que estás imprimiendo un Date del paquete java.sql y no un Date del paquete java.util y cada uno tiene un formato por defecto optimizado para su función.


String fecha1 = "17-03-1998";
String patron = "dd-MM-yyyy";
java.util.Date f1 = sdf.parse(fecha1, new ParsePosition(0));
System.out.println("Date de util:"+f1);
System.out.println("Date de sql:"+new java.sql.Date(f1.getTime()));

Te devolverá lo siguiente...
Date de util: Tue Mar 17 00:00:00 CET 1998
Date de sql: 1998-03-17

Espero que te sirva. Un saludo.