如何获得时间差/时间的小时和分钟在Java中来吗?

问题描述 投票:-1回答:1

在我的项目,我需要找到从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和乔达时间日期和时间为好。此外,我通过以下链接去

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

然而,几乎所有的解决方案,或者是参数或返回值是一个字符串。另外,返回任一小时或分钟只。

java datetime java-time
1个回答
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);
© www.soinside.com 2019 - 2024. All rights reserved.