2012-08-14 86 views
0

我使用Java創建了一個應用程序,並且我有一個文本框,我想輸入開始時間,另一個輸入endtime。在這些參賽作品之後,我希望看到時差hh:mm。以hh:mm的形式輸入時間

例子:

開始時間:12:00
結束時間:14:30

結果:2:30

+7

[你有什麼嘗試](http://mattgemmell.com/2008/12/08/what-have-you-tried/),沒有工作? – pankar 2012-08-14 08:50:41

回答

1

獲取毫秒的時間從您的日期 - 領域。從'到'日期摘要'從'開始。例如。

toDate.getTime() - fromDate.getTime() 

然後,你必須以毫秒爲單位的時間差,計算到秒,小時,天等的簡單的事情

milliseconds/1000 

數秒等

1

這將有助於你瞭解SimpleDateFormat以解析和格式化Date對象。

要在您的文本字段解析日期使用

// use "hh:mm" if you work in 12-hour format or 
    // use "HH:mm" if you work in 24-hour format 
    SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm"); 
    try 
    { 
     Date date = dateFormat.parse(startTextField.getText()); 
    } 
    catch (ParseException e) 
    { 
     //TODO don't forget process exception 
     e.printStackTrace(); 
    } 
0

到目前爲止給出的都是正確的兩個答案,但我認爲他們會最好一起利用。

像這樣:

SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm"); 
try { 
    Date startDate = dateFormat.parse(startTextField.getText()); 
    Date endDate = dateFormat.parse(endTextField.getText()); 

    long differenceMillis = endDate.getTime() - startDate.getTime(); 

    resultTextField.setText(dateFormat.format(new Date(differenceMillis))); 
} catch (ParseException e) { 
    resultTextField.setText("ERROR"); 
} 

所有編碼方案見this Javadoc。請注意,此方法將以天爲單位減少差異,並僅報告幾小時。