我需要将像2010-11-28这样的字符串转换为Date类型以保存在PostgreSQL数据库中。我试过这段代码,但是当我检查数据库中的结果时,两个日期都为空:Java:将字符串转换为日期
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);
------------------------- -------编辑----------------------------
startDate和endDate是格式为yyyy- mm-dd喜欢2010-11-27。堆栈跟踪中没有任何东西(转换似乎以某种方式工作)。如果有什么我可能会知道什么是错的。转换后,日期存储在postgres数据库中。是的,我用util.Date而不是sql.Date(可能这是第一个错误)。
------------------------------- Edit2 -------------- -------------
代码被简化了,但是:栈跟踪没有显示任何奇怪的东西,validStartDate和validEndDate被转换成像这样的东西Tue Nov 30 00:00:00 CET(所以不是空)。作业确实正确保存在数据库中。 sql:插入public.assignment(type,valid_start_date,valid_end_date,id)值(5,NULL,NULL,2)。我试图使用sql.Date,但没有成功。
----------------------------作业映射---------------- -
<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>
我正在使用Hibernate来保存用户数据。该字符串由JQuery小部件Datepicker创建。有谁知道如何解决这个问题?预先感谢您的帮助。
你确定`startDate`和`endDate`正确填充? – Bozho 2010-11-28 18:05:25
因此,您没有处理异常,但忽略它并继续执行代码流?你应该抛出异常!它包含有关该问题的宝贵信息。 – BalusC 2010-11-28 18:07:31