将oracle Date字段Object转换为java Date

时间:2012-08-22 12:03:50

标签: java oracle date casting

我在Oracle DB中有一个Date字段。

日期字段1

现在有一个现有的DAO以Object

的形式获取此field1
Object field1

现在我需要输入它到java Date

But if i do like following i get error:
Date dt = (Date) object;  //object holds date object
DateTime jdt = new DateTime(dt) ; //convert it to jodaDate

错误:cannot cast Long to Date.

如何将其转换为javaDate而不是Joda DateTime

2 个答案:

答案 0 :(得分:1)

您将Oracle DB中的数据类型DATE与Java类型Date混淆。错误cannot cast Long to Date表明您持有的对象属于Java类型Long,这就是为什么对Java Date类型的强制转换失败的原因。 Long表示自1970年1月1日以来的秒数或毫秒数,具体取决于您的DOA层(参见其文档),因为Oracle中的DATE精度仅降至秒。要收到日期,请分别使用new Date((long) object)new Date(1000 * (long) object)

您也可以使用这些毫秒数直接生成DateTime,而无需使用Java Date类。

答案 1 :(得分:0)

从错误消息中可以看出,提取的对象是Long类型。现在,您可以简单地从Long对象构造 java.util.Date 对象,如下所示:

Date dt = new Date((Long)object)