2012-08-14 181 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。请注意,此方法将以天为单位减少差异,并仅报告几小时。