以hh:mm形式输入时间

时间:2012-08-14 08:48:31

标签: java

我正在用Java创建一个应用程序,我有一个文本字段,我想输入开始时间,另一个我要输入结束时间。在这些条目之后,我希望看到hh:mm形式的时差。

示例:

  

开始时间:12:00   结束时间:14:30

     

结果:2:30

3 个答案:

答案 0 :(得分:1)

从日期字段中获取以毫秒为单位的时间。从'到'日期减去'from'日期。 E.g。

toDate.getTime() - fromDate.getTime()

然后你有时间差,以毫秒为单位,简单的计算为秒,小时,天等等。

milliseconds / 1000

秒等。

答案 1 :(得分: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();
    }

答案 2 :(得分: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。请注意,此方法将以天为单位减少差异,并仅报告小时数。