java 如何获取两个LocalTime时间之间的小时和分钟

4nkexdtk  于 2022-12-28  发布在  Java
关注(0)|答案(1)|浏览(301)

现在,我可以获得两个本地时间之间的小时数,如下所示:

public long getHours(){
        return ChronoUnit.HOURS.between(this.timeIn, this.timeOut);
    }

但结果只是小时数,我想把分钟数也包括在内,例如,如果5小时30分钟通过,结果是5.30。
编辑:例如,timeIn是10:00:00,timeout是15:30:00。我需要这两个时间之间的小时和分钟

pkwftd7m

pkwftd7m1#

您可以使用java.time API中的Duration.between方法:

public static Duration getDuration(){
    LocalTime timeIn  = LocalTime.now();;
    LocalTime timeOut = timeIn.plusHours(5).plusMinutes(30).plusSeconds(23);
    return Duration.between(timeIn, timeOut);
}

返回上述示例:

PT5H30M23S

该文本采用标准ISO 8601格式。
要以不同的方式格式化它,请使用Duration类中的方法toXXXPart()

public static String format(Duration duration) {
    return String.format("%02d:%02d:%02d", duration.toHoursPart(), duration.toMinutesPart(), duration.toSecondsPart());
}

与上述示例相同的示例输出:

System.out.println(format(getDuration()));

印刷品

05:30:23

相关问题