0

Apache Meta-modelデータベースから値を抽出するために使用していMS SQL SERVER 2008 R2ます。Java の同等のタイプがミリ秒を表示していないタイプのMS SQL SERVER 2008 R2データベースにフィールドがあります。例えばTIME(7)java.sql.Timejava.sql.Time

Actual `TIME(7)` value in database: `12:28:16.9475678`
whereas I getting: `12:28:16`

ミリ秒単位で時間を取得するには?

更新しました:

org.joda.time.LocalTime以下に示すように、ミリ秒を取得しようとしたとき:

   LocalTime localTime = new LocalTime(((Time)row.getValues()[pos]).getTime());
   localTime.toString(); 

出力:(12:28:16.947の丸め値を示しています9475678

に変換した後String、ミリ秒のラウンド値を取得しています12:28:16.947。ミリ秒の精度が失われます。 値を丸めずにミリ秒単位で正確な値を取得する方法を提案してください。

更新しました:

提案どおり getNanos() を使用してみましたが、次のような正確なミリ秒値を除いてゼロミリ秒を取得しています:

実際の値: 12:28:16.9475678 と私は 12:28:16.9470000 を取得しています

コード:-

 long timestamp =new Timestamp(((Time)row.getValues()[pos]).getTime()).getNanos();
4

1 に答える 1

2

java.sql.Timeにはミリ秒は含まれません。小数秒が含まれるため、代わりにjava.sql.Timestampを使用してみてください。

于 2016-06-13T13:19:05.557 に答える