0

我在 Oracle DB 中有一个日期字段。

日期字段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

4

2 回答 2

1

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

您也可以使用这些毫秒数直接生成一个DateTime,而不使用 JavaDate类。

于 2012-08-22T12:28:24.127 回答
0

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

Date dt = new Date((Long)object)
于 2012-08-22T12:26:58.603 回答