如何获取两个Java.time.LocalTime实例之间的小时数?

3

我有一个Java.Time.LocalTime的实例作为开始时间。在完成任务后,我想获取当前时间并计算两者之间的差异,以小时为单位。

    int noOfHours = LocalTime.now() - startTime;

1
@Jens 不确定您为什么移除了 Java 标签... - assylias
2
@Jens 但是Java 8就是Java! - assylias
@assylias 但是有一个特殊的 java-8 标签,所以我认为当我有一个Java8问题时应该使用它。 - Jens
2
@Jens 加入Java-8是有意义的,但我认为最好也留下Java:当我们使用Java 10时,人们在寻找这些问题时不一定会使用Java-8作为标签。另请参见:http://meta.stackoverflow.com/questions/265844/should-i-not-use-the-generic-tag-if-my-solution-is-limited-to-a-specific-version - assylias
2个回答

5

您可以使用:

import static java.time.temporal.ChronoUnit.HOURS;

HOURS.between(startTime, LocalTime.now());

2

两种选择,都涉及到java.time.temporal.ChronoUnit.HOURS

// use the until() method on LocalTime
long noOfHours = startTime.until(LocalTime.now(), ChronoUnit.HOURS);

// use the between() method on HOURS
long noOfHours = ChronoUnit.HOURS.between(startTime, LocalTime.now());

要将long转换为int,请使用Math.toIntExact(noOfHours)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接