我正在用Java创建一个应用程序,我有一个文本字段,我想输入开始时间,另一个我要输入结束时间。在这些条目之后,我希望看到hh:mm形式的时差。
示例:
开始时间:12:00 结束时间:14:30
结果:2:30
答案 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。请注意,此方法将以天为单位减少差异,并仅报告小时数。