Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/10/2009, 05:07
Pelirr
 
Fecha de Ingreso: diciembre-2008
Mensajes: 233
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: pasar String a Date

Hola, el problema es que no sé como ni porqué unas veces me coge la fecha como dd/M/yyyy y otras me la coge como MM/dd/yyyy. He probado varias veces, y unas veces textoFecha es '8/19/09 12:00:00 AM.000' y otras veces es '19/08/09 12:00:00 AM.000'. Ese creo que es mi principal problema a la hora de coger la fecha.
Luego tengo otro problema, y es a la hora de hacer una consulta a la bbdd, pidiendo todas las instancias de la clase SalidaResiduo que tengan fecha de ese día, es decir, de 19/08/2009 00:00:00 a 19/08/2009 23:59:59. El método donde hago esta consulta es:

public Collection<SalidaResiduo> obtenerSalidasResiduosDeFecha(Date fecha) throws JpaDaoException {
try {
DateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
DateFormat formatoFechaDestino = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
String textoFecha = formatoFecha.format(fecha);
Date fechaDesde = formatoFechaDestino.parse(textoFecha + " 00:00:00");
Date fechaHasta = formatoFechaDestino.parse(textoFecha + " 23:59:59");
String textoConsulta = "from SalidaResiduo srE where srE.fechasalida >= "+fechaDesde+
" and srE.fechasalida <= "+fechaHasta;
Query consulta = this.getEntityManager().createQuery(textoConsulta) ;

return consulta.getResultList();
} catch (Exception e) {
throw new JpaDaoException(e);
}
}

Pero me dá el siguiente error:

es.aena.sgcomun.base.service.exception.SpringServi ceException: es.aena.sgcomun.base.data.exception.JpaDaoExceptio n: java.lang.IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: unexpected token: Jul near line 1, column 94 [from es.aena.sgma.controlresiduos.data.entity.SalidaRes iduo srE where srE.fechasalida >= Tue Jul 08 00:00:00 CET 10 and srE.fechasalida <= Tue Jul 08 23:59:59 CET 10]

Es decir, que no sé porqué unas veces me coge la fecha como string dd/MM... y otras como MM/dd..., ni qué está mal en el texto de la consulta para obtener todas las instancias de ese día. ¿Podéis echarme un cable? Muchas gracias, y un saludo