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

Restar hora en Java

Estas en el tema de Restar hora en Java en el foro de Java en Foros del Web. Hola, soy nuevo programando en java y queria preguntar como puedo hacer para restar un campo de una bd en mysql tipo TIME, osea alli ...
  #1 (permalink)  
Antiguo 30/01/2012, 11:09
 
Fecha de Ingreso: diciembre-2006
Mensajes: 381
Antigüedad: 17 años, 3 meses
Puntos: 2
Restar hora en Java

Hola, soy nuevo programando en java y queria preguntar como puedo hacer para restar un campo de una bd en mysql tipo TIME, osea alli tengo guardado una hora por ejemplo 12:00:00, y a ese campo deseo restarle dos horas usando java, pero no se como.
Pueden ayudarme?
  #2 (permalink)  
Antiguo 30/01/2012, 23:53
Avatar de farfamorA  
Fecha de Ingreso: noviembre-2010
Ubicación: Lima
Mensajes: 136
Antigüedad: 13 años, 5 meses
Puntos: 24
Respuesta: Restar hora en Java

¿Qué usas para leer la base de datos? ¿JDBC, JPA? ¿Deseas restarle dos horas a la fecha para volver a guardar en la base de datos, o lo necesitas mostrar en Java? ¿Puedes ser más específico?

Salu2.
  #3 (permalink)  
Antiguo 31/01/2012, 06:55
Avatar de Fuzzylog  
Fecha de Ingreso: agosto-2008
Ubicación: En internet
Mensajes: 2.511
Antigüedad: 15 años, 8 meses
Puntos: 188
Respuesta: Restar hora en Java

http://huu2uan.posterous.com/java-get-date-from-mysql

En general lo que necesitas es manejar

java.sql.Time dbSqlTime = rs.getTime(1);

Luego dbSqlTime tendrá el método getTime(), que creo que obtiene el tiempo en milisegundos, le restas 2*3600*1000 (que son los milisegundos de 2 horas) y lo seteas de nuevo.

dbSqlTime.setTime(dbSqlTime. getTime() - 2*3600*1000);

Y ya deberías tener tu nueva hora.

Revisa esto porque lo he planteado a ojo ;)
__________________
if (fuzzy && smooth) {
fuzzylog = "c00l";
return true;
}
  #4 (permalink)  
Antiguo 31/01/2012, 07:53
 
Fecha de Ingreso: enero-2012
Ubicación: Los Angeles, CA, USA
Mensajes: 10
Antigüedad: 12 años, 3 meses
Puntos: 1
Respuesta: Restar hora en Java

El método java.sql.PreparedStatement.setDate() toma un java.sql.Date como argumento (no un java.util.Date), que trunca las partes de la hora, los minutos etc.
Asi que necesitas usar PreparedStatement.setTimestamp(). Lamentablemente, java.sql.Timestamp no toma java.util.Date en su constructor, asi que es preciso marcar otro paso adicional que es obtener el valor long de milisegundos de nuestro objeto java.util.Date por medio del método getTime() para entregarlo al constructor de java.sql.Timestamp:
pStat.setTimestamp( 4, new java.sql.Timestamp(miFecha.getTime()));
Howard Hyde, autor, 'Java Web Database Application Development' a: [URL="http://javawebdb.com"]http://javawebdb.com[/URL].

Etiquetas: mysql, restar
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 04:21.