2013-06-30 78 views
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的返回類型,即對象a將返回Time。

回答

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); 
相關問題