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

[SOLUCIONADO] problemas con las fechas en java

Estas en el tema de problemas con las fechas en java en el foro de Java en Foros del Web. Hola chicos, como están? saben tengo varios días dando vueltas , y como recién empiezo, me es difícil encontrar respuesta. mi error es : error ...
  #1 (permalink)  
Antiguo 19/07/2013, 13:17
 
Fecha de Ingreso: julio-2013
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
problemas con las fechas en java

Hola chicos, como están? saben tengo varios días dando vueltas , y como recién empiezo, me es difícil encontrar respuesta. mi error es :
error en la base de datos Error al convertir una cadena de caracteres en fecha y/u hora

mi clase es : TablaSeguimiento
Código Java:
Ver original
  1. public boolean agregarTablaSeguimiento() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException{
  2. boolean exito=false;
  3. exito = Conexion.Grabar("INSERT INTO TablaSeguimiento (datoTS,fechaTS) " +
  4. "VALUES ('"+ this.datoTS+"','"+this.fechaTS+"')");
  5. Conexion.Cerrar();
  6. this.BuscarUltimoIdTablaSeguimiento();
  7. return exito;
  8. }
  9.  
  10.  
  11.  
  12. el main para agregar la fecha es:
  13. private static void Agregar(){
  14. try {
  15.  
  16. System.out.println("Ingrese el dato de la tabla: ");
  17. tabse.setDatoTS(br.readLine());
  18.  
  19. System.out.println("Ingrese la fecha del Dato Ingresado: ");
  20. Calendar datofec = Calendar.getInstance();
  21. tabse.setFechaTS(datofec.getTime());
  22. try {
  23. tabse.agregarTablaSeguimiento();
  24. System.out.println("------------------------------------------------");
  25. System.out.println("*******TablaSeguimiento Agregada Correctamente*******");
  26. System.out.println("------------------------------------------------");
  27. } catch (ClassNotFoundException ex) {
  28. System.out.print("No se gargo la libreria " + ex.getMessage());
  29. } catch (SQLException ex) {
  30. System.out.print("error en la base de datos " + ex.getMessage());
  31. } catch (InstantiationException ex) {
  32. System.out.print("error instance " + ex.getMessage());
  33. } catch (IllegalAccessException ex) {
  34. System.out.print("error Ilegal " + ex.getMessage());
  35. }
  36. } catch (IOException ex) {
  37. System.out.print(ex.getMessage());
  38. }
  39. }
mi base de Datos SQL: y esta en orden tal cual en mi cadena de string de agregar

si me podrian ayudar, que estoy apunto del colapso. Gracias

Última edición por razpeitia; 19/07/2013 a las 14:53
  #2 (permalink)  
Antiguo 19/07/2013, 15:04
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años, 6 meses
Puntos: 9
Respuesta: problemas con las fechas en java

datofec.getTime() lo que devuelve es algo como: Fri Jul 19 18:08:04 ART 2013

y en la base de datos el formato para ingresar una fecha, sino mal recuerdo es:

yyyy/mm/dd/hh/ms/ss

Ese es el problema.
  #3 (permalink)  
Antiguo 19/07/2013, 15:19
 
Fecha de Ingreso: julio-2013
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problemas con las fechas en java

Gracias por responderme. Entonces lo que estoy haciendo es decirle que me de la fecha actual en vez de yo ingresarla.? Como podría cambiarlo? Gracias
  #4 (permalink)  
Antiguo 19/07/2013, 15:43
 
Fecha de Ingreso: julio-2013
Mensajes: 5
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problemas con las fechas en java

Hola, lo que podrias hacer, si quieres es tomar la fecha actual del sistema, usando las opciones que te da Calendar, por ejemplo:

System.out.println(fecha.get(Calendar.DAY_OF_MONTH )+"/"+fecha.get(Calendar.MONTH)+"/"+fecha.get(Calendar.YEAR));

El formato depende como almacene las fechas tu base de datos en este ejemplo de desplegara algo asi dd/mm/yyyy...

Si quieres almacenarlas por ejemplo con "-", tambien lo podrias modificar...

Pero si quieres ingresarla manualmente debes crear una variable tipo Date, nesecitas la libreria de java:

import java.util.*;

Date date = new Date();
date = new Date("19/07/2013");

Espero te sirva....Saludos...
  #5 (permalink)  
Antiguo 19/07/2013, 16:51
 
Fecha de Ingreso: julio-2013
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problemas con las fechas en java

sabes que probe tal cual me dijiste, pero me salta un error, no se si es que no lo estoy armando bien. en el main declaro

System.out.println("Ingrese la fecha del Dato Ingresado: ");
Date date = new Date();
date = new Date(tabse.setFechaTS(date));
  #6 (permalink)  
Antiguo 19/07/2013, 17:11
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años, 6 meses
Puntos: 9
Respuesta: problemas con las fechas en java

Código Java:
Ver original
  1. System.out.println("Ingrese la fecha del Dato Ingresado: ");
  2.         Calendar datofec = new GregorianCalendar();
  3.        
  4.         String fecha = ""+datofec.get(Calendar.YEAR)+"/"+(datofec.get(Calendar.MONTH)+1)+"/"+
  5.                 datofec.get(Calendar.DAY_OF_MONTH)+" "+datofec.get(Calendar.HOUR_OF_DAY)+"/"+
  6.                 datofec.get(Calendar.MINUTE)+"/"+datofec.get(Calendar.SECOND);
  7.        
  8.         tabse.setFechaTS(fecha);


Esa seria la fecha, si el campo en la BD es fecha y hora. Si el campo de la BD es solo de fecha, la editas para que solo sea con la fecha (le eliminas la parte de la hora).
  #7 (permalink)  
Antiguo 19/07/2013, 22:42
 
Fecha de Ingreso: julio-2013
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problemas con las fechas en java

Sabes que pruebo y pruebo, y nada. me sigue saliendo el mismo error. revise SQL y esta ok. es mas puedo ingresar otras clases sin ningún problema, pero no había ingresado un Date. capaz ustedes lo puedan ver ... la verdad muchas gracias al que se toma el tiempo en leerme y responderme. Muchas Gracias!!!! (aplique tal cual me dijeron)

package tesiscentromedico;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Date;
public class TablaSeguimiento {
//ATRIBUTOS:
private int idTablaSeguimiento;
private String datoTS;
private Date fechaTS;
//METODOS GET Y SET:
public int getIdTablaSeguimiento() {
return idTablaSeguimiento;
}
public void setIdTablaSeguimiento(int idTablaSeguimiento) {
this.idTablaSeguimiento = idTablaSeguimiento;
}
public String getDatoTS() {
return datoTS;
}
public void setDatoTS(String datoTS) {
this.datoTS = datoTS;
}
public Date getFechaTS() {
return fechaTS;
}
public void setFechaTS(Date fechaTS) {
this.fechaTS = fechaTS;
}
//OPERACIONES
public boolean agregarTablaSeguimiento() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException{
boolean exito=false;
exito = Conexion.Grabar("INSERT INTO TablaSeguimiento (datoTS,fechaTS) " +
"VALUES ('"+ this.datoTS+"','"+this.fechaTS+"')");
Conexion.Cerrar();
this.BuscarUltimoIdTablaSeguimiento();
return exito;
}
public boolean modificarTablaSeguimiento() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException{
Conexion conexion = new Conexion();
return conexion.Grabar("UPDATE TablaSeguimiento SET datoTS='"+this.getDatoTS()+
"',fechaTS='"+this.getFechaTS()+
"' WHERE idTablaSeguimiento="+this.getIdTablaSeguimiento()) ;
}
public void buscarTablaSeguimiento (int idTablaSeguimiento) throws InstantiationException, IllegalAccessException{
try {
Conexion conexion = new Conexion();
ResultSet rs = conexion.Buscar("SELECT * FROM TablaSeguimiento " +
"WHERE idTablaSeguimiento = " + idTablaSeguimiento);
if(rs.next()){
this.idTablaSeguimiento = rs.getInt(1);
this.datoTS=rs.getString(2);
this.fechaTS=rs.getDate(3);
}
} catch (SQLException ex) {

} catch (ClassNotFoundException ex) {

}
}
public boolean eliminarTablaSeguimiento() throws ClassNotFoundException, SQLException, InstantiationException, IllegalAccessException{
Conexion conexion = new Conexion();
return conexion.Grabar("DELETE FROM TablaSeguimiento WHERE IdTablaSeguimiento="+this.getIdTablaSeguimiento()) ;
}
public ArrayList ListarTablaSeguimiento() throws InstantiationException, IllegalAccessException{
try {
ArrayList<TablaSeguimiento> arr = new ArrayList<TablaSeguimiento>();
Conexion conexion = new Conexion();
ResultSet rs = conexion.Buscar("SELECT * FROM TablaSeguimiento ");
while(rs.next()){
TablaSeguimiento tase = new TablaSeguimiento();
tase.idTablaSeguimiento = rs.getInt(1);
tase.datoTS = rs.getString(2);
tase.fechaTS = rs.getDate(3);
arr.add(tase);
}
return arr;
} catch (SQLException ex) {
return null;
} catch (ClassNotFoundException ex) {
return null;
}
}
public void BuscarUltimoIdTablaSeguimiento() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException{
String strSQL = "SELECT MAX(idTablaSeguimiento) FROM TablaSeguimiento";
Conexion con = new Conexion();
ResultSet rs = con.Buscar(strSQL);
if(rs.next()){
this.idTablaSeguimiento = rs.getInt(1);
}else{
this.idTablaSeguimiento = 1;
}
Conexion.Cerrar();

}
}
  #8 (permalink)  
Antiguo 19/07/2013, 22:42
 
Fecha de Ingreso: julio-2013
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problemas con las fechas en java

y es es el main :

private static void Agregar(){
try {
System.out.println("Ingrese el dato de la tabla: ");
tabse.setDatoTS(br.readLine());

System.out.println("Ingrese la fecha del Dato Ingresado: YY/MM/DD ");
Calendar datofec = new GregorianCalendar();
String fecha = ""+datofec.get(Calendar.YEAR)+"/"+(datofec.get(Calendar.MONTH)+1)+"/"+
datofec.get(Calendar.DAY_OF_MONTH);
tabse.setFechaTS(fecha);

try {
tabse.agregarTablaSeguimiento();
System.out.println("------------------------------------------------");
System.out.println("*******TablaSeguimiento Agregada Correctamente*******");
System.out.println("------------------------------------------------");
} catch (ClassNotFoundException ex) {
System.out.print("No se gargo la libreria " + ex.getMessage());
} catch (SQLException ex) {
System.out.print("error en la base de datos " + ex.getMessage());
} catch (InstantiationException ex) {
System.out.print("error instance " + ex.getMessage());
} catch (IllegalAccessException ex) {
System.out.print("error Ilegal " + ex.getMessage());
}
} catch (IOException ex) {
System.out.print(ex.getMessage());
}
}
  #9 (permalink)  
Antiguo 20/07/2013, 19:29
 
Fecha de Ingreso: mayo-2013
Ubicación: Córdoba
Mensajes: 139
Antigüedad: 11 años, 6 meses
Puntos: 9
Respuesta: problemas con las fechas en java

Y pues claro que no te va a andar, si la fecha en tu clase TablaSeguimiento la declaraste como tipo DATE, y le estas mandando una fecha en tipo STRING..

Si subes el error que te da capaz sería mas facil.
  #10 (permalink)  
Antiguo 20/07/2013, 20:27
 
Fecha de Ingreso: julio-2013
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problemas con las fechas en java

Hice el cambio que me dijiste y ahora hubo un cambio !! genial!! ahora agrega la fecha actual y se guarda en la base de datos, pero no me deja colocar nada, pero se guarda.. muchas gracias.. voy a revisar todo de nuevo! lo verdad son lo máximo.. genial! muchas gracias por todo.. esto me sale en el run:

-------------------Clase TablaSeguimiento-------------------
1. Agregar TablaSeguimiento :
2. Modificar TablaSeguimiento :
3. Eliminar TablaSeguimiento :
4. Salir :
------Ingrese una Opcion :
1
Ingrese el dato de la tabla:
eco
Ingrese la fecha del Dato Ingresado: YY/MM/DD
------------------------------------------------
*******TablaSeguimiento Agregada Correctamente*******
------------------------------------------------
-------------------Clase TablaSeguimiento-------------------
1. Agregar TablaSeguimiento :
2. Modificar TablaSeguimiento :
3. Eliminar TablaSeguimiento :
4. Salir :
------Ingrese una Opcion :
2
2
eco
2013-07-20
3
eco
2013-07-20
4
eco
2013-07-20

y graba, lo que no se es porque no me deja ingresar a mi la fecha
  #11 (permalink)  
Antiguo 20/07/2013, 20:47
 
Fecha de Ingreso: julio-2013
Mensajes: 7
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: problemas con las fechas en java

Solucionado .. muchas gracias a todos especialmente a cazador1992, estuve hasta soñando con esta solucion.. jajaj muchas gracias!
ahora graba:
run:
-------------------Clase TablaSeguimiento-------------------
1. Agregar TablaSeguimiento :
2. Modificar TablaSeguimiento :
3. Eliminar TablaSeguimiento :
4. Salir :
------Ingrese una Opcion :
1
Ingrese el dato de la tabla:
ecografia
Ingrese la fecha del Dato Ingresado: YY/MM/DD
2013/07/19
------------------------------------------------
*******TablaSeguimiento Agregada Correctamente*******
------------------------------------------------
-------------------Clase TablaSeguimiento-------------------
1. Agregar TablaSeguimiento :
2. Modificar TablaSeguimiento :
3. Eliminar TablaSeguimiento :
4. Salir :
------Ingrese una Opcion :
2
1
ecocardiograma
2013-07-20
2
result
2007-05-30
3
ecografia
2013-07-19
Ingrese el Id de la TablaSeguimiento a Modificar :


-------------------
al final debia cambiar el modo de entrada de set, si es un string entra como string:
private static void Agregar(){
try {
System.out.println("Ingrese el dato de la tabla: ");
tabse.setDatoTS(br.readLine());

System.out.println("Ingrese la fecha del Dato Ingresado: YY/MM/DD ");
Calendar datofec = new GregorianCalendar();
String fecha = ""+datofec.get(Calendar.YEAR)+"/"+(datofec.get(Calendar.MONTH)+1)+"/"+
datofec.get(Calendar.DAY_OF_MONTH);
tabse.setFechaTS(br.readLine());

try {
tabse.agregarTablaSeguimiento();
System.out.println("------------------------------------------------");
System.out.println("*******TablaSeguimiento Agregada Correctamente*******");
System.out.println("------------------------------------------------");
} catch (ClassNotFoundException ex) {
System.out.print("No se gargo la libreria " + ex.getMessage());
} catch (SQLException ex) {
System.out.print("error en la base de datos " + ex.getMessage());
} catch (InstantiationException ex) {
System.out.print("error instance " + ex.getMessage());
} catch (IllegalAccessException ex) {
System.out.print("error Ilegal " + ex.getMessage());
}
} catch (IOException ex) {
System.out.print(ex.getMessage());
}
}

Etiquetas: clase, string
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 22:57.