Foros del Web » Programación para mayores de 30 ;) » Java »

Fechas

Estas en el tema de Fechas en el foro de Java en Foros del Web. Hola de nuevo!!!El caso es que tengo que meter dos fechas en una base de datos, una la del día actual y otra 15 días ...
  #1 (permalink)  
Antiguo 30/04/2009, 17:16
 
Fecha de Ingreso: diciembre-2003
Mensajes: 156
Antigüedad: 20 años, 4 meses
Puntos: 0
Pregunta Fechas

Hola de nuevo!!!El caso es que tengo que meter dos fechas en una base de datos, una la del día actual y otra 15 días en adelante. El caso es que haciendo esto, si lo saco por pantalla me sale bien, pero el error sucede al pasar a la base de datos, que se graban fechas diferentes a las de pantalla:

//Calculo la fecha de hoy
java.util.Date fechahoy = new java.util.Date();
long HoyMilisegundos = fechahoy.getTime();
java.sql.Date sqlHoy = new java.sql.Date(HoyMilisegundos);

[COLOR="rgb(46, 139, 87)"]//Saco año, mes y dia sumando a la fecha de hoy 15 dias[/COLOR]
Calendar fecha = Calendar.getInstance();
fecha.add(Calendar.DATE,15);

int año= fecha.get(Calendar.YEAR)-1900;
int mes= fecha.get(Calendar.MONTH);
int dia= fecha.get(Calendar.DATE);

[COLOR="rgb(46, 139, 87)"]//Creo la fecha +15 dias[/COLOR]
java.util.Date fechafin = new java.util.Date(año,mes,dia,0,0);
long FinMilisegundos = fechafin.getTime();
java.sql.Date sqlFin = new java.sql.Date(FinMilisegundos);


[COLOR="rgb(46, 139, 87)"]//Se inserta en la base de dato[/COLOR]s
query="SELECT ISBN FROM RESERVA WHERE ISBN="+JISBN.getText()+"";
rs = stmt.executeQuery(query);

if (rs.next()!=true)
{
sentencia = "INSERT INTO RESERVA VALUES ("+2+",'"+JISBN.getText()+"',"+sqlHoy+","+sqlFin+","+2+");";

stmt.executeUpdate(sentencia);
}

else
{
System.out.println("Lo sentimos, el libro está reservado");
}

}


catch( Exception e)
{
System.out.println(e.toString());
}


Gracias y saludos!!!
  #2 (permalink)  
Antiguo 02/05/2009, 05:04
 
Fecha de Ingreso: abril-2009
Mensajes: 82
Antigüedad: 15 años
Puntos: 2
Respuesta: Fechas

Buenas:

No se si te puede ser, pero lo mismo el formato de fecha que genera el toString del Date no es válido (como formato) para la sentencia SQL. Si quieres cambiar el formato de salida, puedes crearte tu propio formato con la clase SimpleDateFormat y ir probando distintos formatos.

Es solo una idea, pero por probar...

PD: Veo que te has complicado un poco para añadir 15 dias a una fecha, prueba esto:

Código:
   Date hoy = new Date();
   cal.setTime(hoy);
   cal.add(Calendar.DAY_OF_YEAR, 15);
   Date fin = cal.getTime();
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:13.