计算不同日期的两个时间类之间的时间差

时间:2013-06-30 08:03:50

标签: java datetime

每个人

这个问题很常见,我搜索了论坛,但没有一个解决方案似乎有效。

我的数据库(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的返回类型,即对象a将返回Time。

1 个答案:

答案 0 :(得分: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);