0

Oracle DB に Date フィールドがあります。

日付フィールド1

現在、このフィールド1をオブジェクトの形式で取得する既存のDAOがあります

Object field1

今、私はそれをJava DateにtypeCastする必要があります

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

DATEOracle DBのデータ型と Java 型を混同していますDate。このエラーcannot cast Long to Dateは、保持しているオブジェクトが Java 型Longであることを示しているため、Java 型へのキャストがDate失敗します。Long は、DOA レイヤー (ドキュメントを参照) に応じて、1970 年 1 月 1 日からの秒数またはミリ秒数を表します。これは、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 に答える