1

NUMBER フィールドをORACLE日付に変換する際に問題があります。問題は、フィールドが 13 桁で構成される値 1285666505575 を保持していることです。これは標準のタイムスタンプ値だと思いましたが、現在のタイムスタンプ時間は 10 桁で構成されています (ここで確認してください)。フィールドはJAVAコードから設定されます。dd-mm-yyyyこの数値を人間の形式に変換したいと思います。適切なアドバイスをいただけますか?

前もって感謝します!

@Jesper の助けを借りて、この解決策を見つけました。

select TO_DATE('01/01/1970 00:00:00','DD/MM/YYYY HH24:MI:SS') + (1285666505575 /1000/60/60/24) from dual
4

1 に答える 1

1

Unix タイムスタンプ (リンクが参照している) は、1970 年 1 月 1 日からの数をカウントします。

Java は、1970 年 1 月 1 日からのミリ秒数を使用して時間をカウントします。したがって、これが Unix タイムスタンプよりも 3 桁多いことは驚くことではありません。

その数値を のコンストラクターに渡すことができますjava.util.Date。例:

Date date = new Date(1285666505575L);
System.out.println(new SimpleDateFormat("dd/MM/yyyy").format(date));
于 2012-10-11T07:16:36.193 に答える