在我的项目中,我需要从goToVisitTime和returnTime中找到员工在办公室上班的时间。主要的关注点是goToVisitTime和returnTime均为日期(java.util)类型[从其他方法获取,不能再更改],并且styingOutSideTime也必须为日期(java.util)类型。例如:
Date goTOvisitTime = "12:25";
Date returnTime = "14:19";
因此,输出应类似于
styingOutSideTime = "01:54";
因此,我的方法如下:
public Date getDiffTime(Date goTOvisitTime, Date returnTime) {
//calculate difference
return styingOutSideTime;
}
我花了很多时间来确定解决方案。我也尝试使用Java和Joda Time的几乎所有日期和时间。此外,我通过以下链接
How to calculate time difference in java?
Java how to calculate time differences
Convert seconds value to hours minutes seconds?
How to get hour/minute difference in java
但是,几乎所有解决方案都是参数,或者返回值是字符串。此外,仅返回小时或分钟。
答案 0 :(得分:2)
首先,持续时间不应为Date
,而应为java.time.Duration
。
如果只想小时和分钟,可以这样:
Duration duration = Duration.between(goTOvisitTime.toInstant(), returnTime.toInstant());
int hours = duration.toHoursPart();
int minutes = duration.toMinutesPart();
String formattedDuration = String.format("%02d:%02d", hours, minutes);