Calendar cal;
String sql = "INSERT INTO ttable (dt) values (?);"
//dt is a dateTime field in ttable

PreparedStatement stmt = connection.prepareStatement(sql);

stmt = setDate(1,cal); //not working

stmt.execute();
stmt.close();

Me gustaría convertir cal a un tipo de Fecha para insertar en la tabla.

  • es de suponer que usted quería java.sql.Date y no java.util.Date?
InformationsquelleAutor Alex | 2012-02-02

7 Comentarios

  1. 119

    Hay un getTime() método (seguro de por qué no se le llama getDate).

    Edición: Acabo de dar cuenta de que necesita un java.sql.Fecha. Una de las respuestas que el uso de cal.getTimeInMillis() es lo que usted necesita.

    • es getTime() porque devuelve la Hora exacta como Wed Dec 05 10:57:35 GMT+03:30 2018, no sólo la fecha.
    • getTime() devuelve java.util.La fecha no java.sql.Fecha. La pregunta era conseguir java.sql.Fecha.
  2. 30

    Intenta cal.getTime()? Esto pone la fecha de la representación.

    También puede que desee ver en el javadoc.

    • Sí, pero sigo necesitando reparto con el (Fecha).
    • Eso es porque necesitas un java.sql.Fecha (como James Jithin dijo) y el Calendario.getTime() proporciona un java.util.Fecha.
  3. 10

    La conversión es fácil, ajuste de fecha y hora es un poco complicado. He aquí un ejemplo:

    Calendar cal = Calendar.getInstance();
    cal.set(Calendar.YEAR, 2000);
    cal.set(Calendar.MONTH, 0);
    cal.set(Calendar.DAY_OF_MONTH, 1);
    cal.set(Calendar.HOUR_OF_DAY, 1);
    cal.set(Calendar.MINUTE, 1);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()));
  4. 6

    Aquí es una forma sencilla de convertir Calendar valores en Date instancias.

    Calendar C = new GregorianCalendar(1993,9,21);
    
    Date DD = C.getTime();
    
    System.out.println(DD);
    • La pregunta preguntó específicamente acerca de java.sql.Fecha. Hay varias respuestas como este, todos asumiendo java.util.Fecha. Por supuesto, algunos dirían que el nombramiento de estos lo mismo era una idea estúpida.

Dejar respuesta

Please enter your comment!
Please enter your name here