0

みんな

この質問はよくあることで、フォーラムを検索しましたが、解決策がどれも機能していないようです。

私のデータベース(MySql)フレームワーク(Hibernate)は私に時間オブジェクトを返し、時間オブジェクトとシステムの現在の時間の差を取得したいと考えています。

これは私のコードです:

Time time=a.getTime();
System.out.println(time);
Time currentTime=new Time((new Date()).getTime());
System.out.println(currentTime);
long diff=time.getTime()-currentTime.getTime();
System.out.println(diff);
executor.schedule(caller,diff,TimeUnit.MILLISECONDS);

出力:

03:51:46
03:25:12
-1372548806938

期待される出力

03:51:46
03:25:12
1594000

これは、タイムオブジェクトが作成された日付が異なるためだと思います。期待される出力を得るにはどうすればよいですか。

注: 既にデータベースを構築しているので、Object の戻り値の型を変更したくありません。つまり、Object は Time を返します。

4

1 に答える 1

0

次のコードを使用すると、予想される出力が受信されたことを確認できます

    Time time=Time.valueOf("03:51:46");
    System.out.println(time);
    Time currentTime=Time.valueOf("03:25:12");
    System.out.println(currentTime);
    long diff=time.getTime()-currentTime.getTime();
    System.out.println(diff);

したがって、オブジェクトを次のようにフォーマットします

    System.out.println(time);
    DateFormat df = new SimpleDateFormat("hh:mm:ss");
    Date preTime=df.parse(df.format(time));
    Date sysTime = df.parse(df.format(new Date()));
    System.out.println(sysTime);
    long diff=preTime.getTime()-sysTime.getTime();
    System.out.println(diff);
于 2013-06-30T08:30:40.867 に答える