2012-08-22 141 views
0

我在Oracle DB中有一个Date字段。将oracle日期字段对象转换为java日期

日期字段1

现在有一个现有的DAO,在对象的形式获取此字段1

Object field1 

现在我需要将其强制转换为Java的日期

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和比约达日期时间

+0

对象不包含'Date'对象,它包含'Long'。你如何获取这个价值? –

+0

有一个DAO已经以对象形式获取它 – user978939

+0

是的,但是数据库中的底层字段的类型是'date'? –

回答

1

您的Java类型Date混淆的数据类型DATE在Oracle数据库中。错误cannot cast Long to Date指出您所持有的对象是Java类型Long,这就是为什么向Java Date类型转换失败的原因。 Long表示自01/01/1970以来的秒数或毫秒数,具体取决于yor DOA层(请参阅文档),因为Oracle中的DATE精度仅下降到秒。要获得日期,分别使用new Date((long) object)new Date(1000 * (long) object)

也可以使用这些毫秒数直接生成DateTime,根本不使用Java Date类。

0

提取的对象是Long类型,从错误消息中可以明显看出。现在,你可以简单contruct从长对象java.util.Date对象如下:

Date dt = new Date((Long)object)