java计算两个日期之间的时间间隔

该博客介绍了如何在Java中利用java.time包的Duration类来计算两个日期之间的间隔。通过将Date转换为LocalDateTime,然后使用Duration.between()方法获取天数、小时数和分钟数。示例代码展示了具体的实现过程,并给出了响应时长的格式化输出。
摘要由CSDN通过智能技术生成

Calendar和Date都没用提供能直接计算两个日期之间时间间隔的api,所以使用了在java8后提供的java.time包下的Duration类来实现,需要先将Date转成java8提供的java.time.LocalDateTime,然后再使用Duration计算两个时间之间的间隔。代码如下:

public String createResponseDurationStr(Date startTime, Date endTime) {
        Calendar
        StringBuilder sb = null;
        if (startTime != null && endTime != null){
            Instant startInstant = startTime.toInstant();
            Instant endInstant = endTime.toInstant();
            ZoneId zoneId = ZoneId.systemDefault();
            LocalDateTime start = startInstant.atZone(zoneId).toLocalDateTime();
            LocalDateTime end = endInstant.atZone(zoneId).toLocalDateTime();
            long days = Duration.between(start,end).toDays();
            long hours = Duration.between(start, end).toHours();
            long minutes = Duration.between(start, end).toMinutes();
            if (days > 0){
                sb = new StringBuilder("");
                sb.append(days).append("天");
            }
            if (hours >= 0){
                sb = sb ==  null ? new StringBuilder("") : sb;
                if (sb.length() > 0 || hours != 0){
                    sb.append(hours).append("小时");
                }
            }
            if (minutes > 0){
                sb = sb ==  null ? new StringBuilder("") : sb;
                sb.append(minutes).append("分钟");
            }
            if (sb != null && sb.length() > 0){
                sb.insert(0,"响应时长: ");
            }
        }
        return sb == null ?  null : sb.toString();
    }

返回示例:

响应时长:1小时5分钟

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值