使用 chronounit.hours.between() 方法可以直接计算两个时间对象之间的间隔小时数。只需传入起始时间和结束时间作为参数,该方法会自动处理跨天、夏令时等复杂情况并返回一个长整型的数值结果。

LocalDateTime 计算普通时间差
对于没有时区信息的本地时间,直接使用 LocalDateTime 配合 ChronoUnit 是最简单的做法。将两个时间点传给 between 方法,得到的结果是精确到小时的整数部分,忽略不足一小时的分钟和秒。

import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDateTime start = LocalDateTime.of(2023, 10, 1, 10, 0, 0);
LocalDateTime end = LocalDateTime.of(2023, 10, 1, 14, 30, 0);
long hours = ChronoUnit.HOURS.between(start, end);
System.out.println(hours); // 输出 4
}
}
ZonedDateTime 处理带时区的时间
当涉及不同时区或需要处理夏令时切换时,应使用
between
方法会返回负数。这符合数学逻辑,表示时间倒流。开发者在业务逻辑中需根据需求决定是取绝对值还是保留符号以判断先后关系。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











