Java - string to datetime

   
Vista:

string to datetime

Publicado por soFila (26 intervenciones) el 20/05/2009 00:17:09
Necesito cambiar un string de la forma dd-mm-yy hh:mm:ss a datetime para guardar en una base de datos sql cuyo campo es tipo date time. Se puede lograr en java?Si no d q otra forma puedo hacerlo?
gracias!"
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:string to datetime

Publicado por Mario (40 intervenciones) el 20/05/2009 12:00:32
Para guardar en base de datos podrás usar con casi toda seguridad la clase Date.

Ayúdate de la clase calendar para crear un Date y luego lo guardas.

Te pongo un "miniejemplo" y si tienes dudas me lo comentas.

Calendar cal = Calendar.getInstance( );
cal.set(year, month, date, hourOfDay, minute, second);
Date fecha = cal.getTime();

Pues bien, en esas tres lineas lo que se hace es lo siguiente:
- Primero se instancia un objeto Calendar.
- Después se setea con los valores deseados. Los valores los obtienes tú al tratar el String de la forma que más te convenga. Tienes que tener en cuenta que los meses empiezan a contar en 0. Es decir... enero es el 0, febrero el 1, marzo el 2... etc.
- Por último se obtiene el objeto Date desde el objeto Calendar, y eso será lo que deberás guardar en BD.

No debería darte ningún problema, pero de ser así me lo comentas ; )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por soFila (26 intervenciones) el 20/05/2009 15:42:57
El tema es q yo ingresola fecha a guardar en la base de datos con un javascript que me muestra un calendario dentro de un
<input type="Text" name="timestamp" value="">

entonces cuando lo recupero, tengo esto
String vto =request.getParameter("timestamp");

si no te entendí mal debería meter este string en cal.set()????
pero los parámetros de set son int, no toma string...q hago??!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por 1a2a3a4a (57 intervenciones) el 20/05/2009 16:19:26
String fechaString="20/04/2009"; // en tu caso viene del request
SimpleDateFormat formato=new SimpleDateFormat("dd/MM/yyyy"); //formato en que viene tu fecha
Date fechaDate=null;
try {
fechaDate = formato.parse(fechaString);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println(fechaDate);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por soFila (26 intervenciones) el 20/05/2009 16:38:21
En esta línea fechaDate = formato.parse(fechaString);
me tira este error
Type mismatch: cannot convert from Date to Date
como soluciono?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por 1a2a3a4a (57 intervenciones) el 20/05/2009 17:42:22
pero fechaString que valor viene? , no es un string ? "10/03/2009" ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por Mario (40 intervenciones) el 20/05/2009 18:46:46
A ver... pensemos un poco, que para eso somos desarrolladores.
Lo que tienes que hacer es tratar ese String a tu antojo, por ejemplo con la clase StringTokenizer.
Si tienes este formato dd-mm-yy hh:mm:ss lo que yo haría sería lo siguiente:
- Primero separo la cadena en dos partes, usando el espacio como referencia. Así tendría por un lado la fecha y por otro la hora.
- Segundo separo cada campo de la fecha, usando los guiones como referencia.
- Tercero separo cada campo de la hora, usando los dos puntos como referencia.

Así tendría 6 strings. Tal y como has dicho, el método que te dije solo acepta int, pero no hay problema. Le haces un cast a cada string y las conviertes a int o a Integer.

No debes tener dificultades en hacerlo, es algo super sencillo y más que básico.
Para darte más ayuda tendría que hacerte el código yo, q x otra parte no me supondría mas de dos minutos de dedicación por su extremada simpleza, pero creo que es conveniente que lo hagas tú y aprendas a enfrentarte a eso para próximas ocasiones.

Aún así, si encuentras obstáculos a la hora de realizarlo pregúntame de nuevo.

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por soFila (26 intervenciones) el 20/05/2009 20:39:47
Si es un string pero no hay forma de q m tome el método...no se q pasa...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por 1a2a3a4a (57 intervenciones) el 20/05/2009 21:20:31
plop ya veo, verifica que el import sea el de java.util.Date, parece que esta tomando el de java.sql
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por soFila (26 intervenciones) el 20/05/2009 22:36:52
Si era eso!!!! pero ahora estoy renegando xq para guardarlo en mysql no me toma el java.util y si le hago el cast de la forma

java.sql.Date f=new java.sql.Date(fecha.getTime());

me dice
Error de servlet generado:
The import java.sql.Date collides with another import statement

claculo q es xq se superpone con el import de java.util.Date...pero no se donde hacerlo para q esto no pase...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por 1a2a3a4a (57 intervenciones) el 20/05/2009 22:46:08
mhm que raro y pintaste como te llega el fecha?

Esta bien la forma como se pasa java.util.Date a java.sql.Date

http://www.java2s.com/Tutorial/Java/0040__Data-Type/ConvertfromajavautilDateObjecttoajavasqlDateObject.htm

en todo caso, podrias hacer el cast en tu query.

SELECT CAST('2000-01-01' AS DATE);
o
SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');

date una vuelta por aca tambien
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html

Saludos ^^
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:string to datetime

Publicado por Mario (40 intervenciones) el 21/05/2009 09:00:06
Bueno... veo que seguís empeñados en la misma solución...
Ahí va un consejo: No useis el método new Date(String fecha), ya que es un método deprecated y a la larga lo vais a tener que cambiar.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar