J'ai besoin de convertir une chaîne comme 2010-11-28 en type Date pour être sauvegardé dans une base de données PostgreSQL. J'ai essayé ce code mais quand je vérifie le résultat dans une base de données les deux dates sont nulles:Java: convertir la chaîne en date
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date validStartDate=null;
Date validEndDate=null;
try {
validStartDate = df.parse(startDate);
validEndDate = df.parse(endDate);
} catch (Exception e) {
...
}
Assigment a = new Assignment(..., validStartDate, validEndDate);
session.save(s);
------------------------- ------- Édition ----------------------------
startDate et endDate sont des chaînes dans un format yyyy- mm-jj aime le 2010-11-27. Il n'y a rien dans la trace de la pile (la conversion semble fonctionner d'une manière ou d'une autre). S'il y avait quelque chose je saurais probablement ce qui ne va pas. Après la conversion, les dates sont stockées dans une base de données postgres. Oui, j'ai utilisé util.Date au lieu de sql.Date (probablement c'est une première erreur).
------------------------------- Éditer2 -------------- -------------
Le code est simplifié mais: la trace de la pile ne montre rien d'étrange, validStartDate et validEndDate sont convertis en quelque chose comme ça mar 30 nov 00:00:00 CET (donc pas nul). L'affectation est en effet correctement enregistrée dans une base de données. Les valeurs sql: insert dans public.assignment (type, valid_start_date, valid_end_date, id) (5, NULL, NULL, 2). J'ai essayé d'utiliser sql.Date mais sans succès.
---------------------------- Mappage des affectations ---------------- -
<hibernate-mapping>
<class name="model.Assignment" schema="public" table="assignment">
<id name="id" type="int">
<column name="id"/>
<generator class="increment"/>
</id>
<property name="validStartDate" type="date">
<column name="valid_start_date" length="13" />
</property>
<property name="validEndDate" type="date">
<column name="valid_end_date" length="13" />
</property>
<property name="type" type="integer">
<column name="type" />
</property>
</class>
</hibernate-mapping>
J'utilise Hibernate pour enregistrer les données utilisateur. La chaîne est créée par un widget Datepicker JQuery. Est-ce que quelqu'un sait comment résoudre ce problème? Merci d'avance pour votre aide.
Êtes-vous sûr que 'startDate' et' endDate' sont correctement remplis? – Bozho
Donc, vous ne gérez pas l'exception, mais l'ignorez et continuez le flux de code? Vous devriez jeter l'exception! Il contient des informations précieuses sur le problème. – BalusC
Votre code est incomplet ... Qu'est-ce que 'startDate, endDate', où' a' va, ce qui est 'session, s'. 'catch' est vide ou quoi? – khachik