很多方法,这里介绍两个很方便的实现
    Demo1

    1. @Test
    2. public void tr(){
    3. final LocalDateTime fromDate = LocalDateTime.now();
    4. final LocalDateTime toDate = LocalDateTime.now().plusHours(56);
    5. long minutes = ChronoUnit.MINUTES.between(fromDate, toDate);
    6. long hours = ChronoUnit.HOURS.between(fromDate, toDate);
    7. System.out.println(minutes);
    8. System.out.println(hours);
    9. // 3360
    10. // 56
    11. }

    Demo2

    1. @Test
    2. public void tr2(){
    3. final LocalDateTime fromDate = LocalDateTime.now();
    4. final LocalDateTime toDate = LocalDateTime.now().plusHours(56);
    5. final Duration duration = Duration.between(fromDate, toDate);
    6. final long minuts = duration.toMinutes();
    7. final long hours = duration.toHours();
    8. System.out.println(minuts);
    9. System.out.println(hours);
    10. // 3360
    11. // 56
    12. }

    格式化操作如下,把项目代码粘过来了,直接用的java8的stream操作,还有hutool包,从Page对象中处理的逻辑,这里有更多Java8 Stream的操作

    1. Page<SyncRecordVo> vos = all.map(e -> JSONUtil.toBean(JSONUtil.toJsonStr(e), SyncRecordVo.class));
    2. vos.map(e -> {
    3. // todo 这里的时间差,这个操作必须要保证开始和结束都有时间!!!,怎么确定
    4. e.setSyncTime(DateUtil.formatBetween(ChronoUnit.MILLIS.between(e.getStartTime(), e.getEndTime()), BetweenFormater.Level.SECOND));
    5. if (e.getSyncStatus().equals(SyncEnum.SyncStatus.SYNC_FAIL.getKey())) {
    6. e.setIsOperate(YesOrNoEnum.YES.getCode());
    7. } else {
    8. e.setIsOperate(YesOrNoEnum.NO.getCode());
    9. }
    10. return e;
    11. }
    12. };

    这里的格式化意思是,将两个LocalDateTime的时间差,转成时分秒格式
    12小时12分12秒
    ————————————————
    版权声明:本文为CSDN博主「Tonels」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/qq_42105629/article/details/99448380