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 a 的返回类型,即 Object a 将返回 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 回答