【发布时间】:2010-11-28 18:03:27
【问题描述】:
我需要将像 2010-11-28 这样的字符串转换为日期类型以保存在 PostgreSQL 数据库中。我试过这段代码,但是当我在数据库中检查结果时,两个日期都是空的:
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(可能这是第一个错误)。
------------------- 编辑2--------------- ------------
代码被简化了,但是:堆栈跟踪没有显示任何奇怪的东西,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填充正确吗? -
那么,您不是在处理异常,而是忽略它并继续代码流?你应该抛出异常!它包含有关问题的有价值的信息。
-
你的代码不完整...
startDate, endDate是什么,a去哪里,session, s是什么。catch是空的还是什么? -
感谢您查看此内容。我编辑了我的原始帖子。
标签: java jquery hibernate jquery-ui date