Comment convertir Calendar en java.sql.Date en Java?

Calendar cal; Ssortingng 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(); 

Je voudrais convertir cal en un type Date pour l’insérer dans la table.

Il y a une méthode getTime (pas sûr de savoir pourquoi on ne l’appelle pas getDate).

Edit: Vous venez de réaliser que vous avez besoin d’un java.sql.Date. Une des réponses qui utilise cal.getTimeInMillis() est ce dont vous avez besoin.

Avez-vous essayé cal.getTime() ? Cela obtient la représentation de la date.

Vous pourriez aussi vouloir regarder le javadoc.

Utilisez stmt.setDate(1, new java.sql.Date(cal.getTimeInMillis()))

La conversion est facile, la configuration de la date et de l’heure est un peu délicate. Voici un exemple:

 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())); 

Voici un moyen simple de convertir les valeurs du Calendar en instances de Date .

 Calendar C = new GregorianCalendar(1993,9,21); Date DD = C.getTime(); System.out.println(DD); 

stmt.setDate(1, new java.sql.Date(cal.getTime().getTime()));

J’ai trouvé ce code fonctionne:

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss"); Calendar calendar = new GregorianCalendar(2013,0,31); System.out.println(sdf.format(calendar.getTime())); 

vous pouvez trouver le rest dans ce tutoriel:
http://www.mkyong.com/java/java-date-and-calendar-examples/