Bonjour,

J'ai une date de type java.util.date et je veux la convertir en java.sql.date.

Voici mon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
java.util.Date utilDate = new java.util.Date();
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);
Pour ça ma console affiche bien la date :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
utilDate:Thu Dec 01 17:46:22 WET 2011
sqlDate:2011-12-01
Mais par exemple si je teste ça (la date est saisie à partir des champs de type JTextField)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
java.util.Date utilDate = new java.util.Date(2013,10,05);
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);
Dans ce cas ma sqlDate doit être 2013-10-05, mais malheureusement mon console affiche:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
utilDate:Wed Nov 05 00:00:00 WET 3913
sqlDate:3913-11-05
au lieu de 2013 j'ai 3913.

La même chose si j'essaie par exemple

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
java.util.Date utilDate = new java.util.Date(2006,06,06);
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
System.out.println("utilDate:" + utilDate);
System.out.println("sqlDate:" + sqlDate);
ma console affiche

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
utilDate:Fri Jul 06 00:00:00 WET 3906
sqlDate:3906-07-06
ici j'ai un problème de mois aussi : au lieu d'avoir 2006-06-06 j'ai 3906-07-06.

SVP quelqu'un a une idée pourquoi? sinon y'a une autre méthode pour convertir une java.util.date en java.sql.date ou bien construire une java.sql.date à partir des champs (int annee, int mois, int jour) directement? car j'ai essayé aussi le constructeur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
java.sql.Date sqlDate2 = new Date(2007, 06, 06);
System.out.println("sqlDatefromconstructeur:" + sqlDate2);
mais ça donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
sqlDatefromconstructeur:3907-07-06
Merci d'avance.