Bonjour à tous,

j'ai un souci concernant des dates dans mon application java.

Contexte:

j'ai une BDD Mysql ou les champs DebutDeValidite et FinDeValidite sont au format Date ("yyyy-MM-dd").

Quand je souhaite lister les objets, j'ai aucun souci, je récupère les dates au format ("yyyy-MM-dd") que je formate via DateFormat en ("dd-MM-yyyy").
Jusque la tout va bien.

Quand je souhaite insérer un nouvel objets dans ma base de données, je fait donc le circuit inverse.

Je récupère le champs debutDeValidite via son accesseur (type String), que je passe au DateFormat en ("yyyy-MM-dd") pour qu'il soit au bon format date de Mysql.

Mon problème:

Pour l'insertion, j'utilise un PreparedStatement qui demande pour la methode preparedStatement.setDate() un java.sql.Date et non un java.until.Date.
C'est ici que tout capote.

Voici un code d'exemple ou debutDeValidite est remplacé par une autre date au format String:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
                                DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");	
			        String date ="21-02-1989";
				java.until.Date uneDate = dateFormat.parse(date);			
				java.sql.Date sqlDate = new java.sql.Date(uneDate.getTime());
                                System.out.println(date);
				System.out.println(uneDate);
		                System.out.println(sqlDate);
La sortie :

21-02-1989
Sat Jul 13 00:00:00 CET 26
0026-07-13


Je ne comprends pas pourquoi le DateFormat fait tout capoter.

Si quelqu'un pourrai m'aider svp?

Bien à vous,