如何在处理Oracle日期数据类型时避免使用已弃用的Date构造函数?

时间:2012-08-15 10:04:26

标签: spring hibernate jsp datetime oracle10g

我正在使用Spring 3.0.2使用Hibernate 3.2.1和Oracle 10g作为后端。在Oracle数据库表中,有一个数据类型为Date的字段。这个Date类型字段在Hibernate(POJO)中与java.util.Date映射,如下所示。

private Date discountStartDate;

在将数据插入或更新到Oracle表格时,我提供的java.lang.String类型日期类似于此08/15/2012 15:08:13。完全没有问题。一切都运行良好,但由于Oracle日期数据类型(据我所知)总是与java.util.Date映射到Hibernate实体,我不能使用其他Java API,如日历,我必须使用已弃用 Date类的构造函数,用于处理Hibernate,如下所示。

Discount obj=new Discount();
date=new Date(request.getParameter("txtDiscountStartDate"));
obj.setDiscountStartDate(date);

应避免使用此类弃用功能。有没有办法在Hibernate中绕过这个已弃用的 Date (“StringDate”)构造函数?

1 个答案:

答案 0 :(得分:3)

不,那是错的。

您应该使用StringDateDateFormat解析为SimpleDateFormat

Here就是一个例子。

这是另一个,因为这对你来说似乎很难:

DateFormat formatter = new SimpleDateFormat("yyyy-MMM-dd");
formatter.setLenient(false);
String discountDateAsString = request.getParameter("txtDiscountStartDate");
Date discountDate = formatter.parse(discountDateAsString);