0

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

例子:

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

结果:2:30

4

3 回答 3

1

从您的日期字段中获取以毫秒为单位的时间。从“到”日期减去“从”日期。例如

toDate.getTime() - fromDate.getTime()

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

milliseconds / 1000

几秒钟等

于 2012-08-14T09:09:19.633 回答
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();
    }
于 2012-08-14T09:27:23.020 回答
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");
}

有关所有编码方案,请参阅此 Javadoc 。请注意,此方法将减少天数的差异,并且仅报告小时数。

于 2012-08-14T16:14:15.123 回答