每个人
这个问题很常见,我搜索了论坛,但没有一个解决方案似乎有效。
我的数据库(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。
答案 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);