栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java8 时间获取时间差汇总及注意点

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java8 时间获取时间差汇总及注意点

Java8 时间获取时间差

文章目录

Java8 时间获取时间差

汇总注意点

1、时间一样2、结束时间少1s

汇总
		LocalDateTime now = LocalDateTime.now();
        LocalDateTime time1 = now.minusDays(96L);
        LocalDateTime time2 = now.plusMonths(2L).plusDays(3L).plusMinutes(6L).plusHours(6L).plusSeconds(6L);
        LocalDateTime time3 = now.plusMonths(4L).plusDays(3L).plusYears(1L);
        LocalDateTime time4 = now.plusMonths(4L).plusDays(3L).plusYears(8L);
        System.out.println(String.format("now  :%s", now));
        System.out.println(String.format("time1:%s", time1));
        System.out.println(String.format("time2:%s", time2));
        System.out.println(String.format("time3:%s", time3));
        System.out.println(String.format("time4:%s%s", time4, "n"));
//        now  :2022-01-12T15:21:59.672
//        time1:2021-10-08T15:21:59.672
//        time2:2022-03-15T21:28:05.672
//        time3:2023-05-15T15:21:59.672
//        time4:2030-05-15T15:21:59.672
        // Duration
        // time1:2021-10-08T15:21:59.672,time2:2022-03-15T21:28:05.672
        System.out.println(String.format("time2与time1相差{ %d }ms", Duration.between(time1, time2).toMillis()));
        System.out.println(String.format("time2与time1相差{ %d }s", Duration.between(time1, time2).getSeconds()));
        System.out.println(String.format("time2与time1相差{ %d }分钟", Duration.between(time1, time2).toMinutes()));
        System.out.println(String.format("time2与time1相差{ %d }h", Duration.between(time1, time2).toHours()));
        System.out.println(String.format("time2与time1相差{ %d }天%s", Duration.between(time1, time2).toDays(), "n"));
//        time2与time1相差{ 13673166000 }ms
//        time2与time1相差{ 13673166 }s
//        time2与time1相差{ 227886 }分钟
//        time2与time1相差{ 3798 }h
//        time2与time1相差{ 158 }天
        // Period
        // time2:2022-03-15T21:28:05.672,time3:2023-05-15T15:21:59.672
        System.out.println(String.format("time3与time2相差{ %d }天", Period.between(time2.toLocalDate(), time3.toLocalDate()).getDays()));
        System.out.println(String.format("time3与time2相差{ %d }月", Period.between(time2.toLocalDate(), time3.toLocalDate()).getMonths()));
        System.out.println(String.format("time3与time2相差{ %d }年%s", Period.between(time2.toLocalDate(), time3.toLocalDate()).getYears(), "n"));
//        time3与time2相差{ 0 }天
//        time3与time2相差{ 2 }月
//        time3与time2相差{ 1 }年
		// time2:2022-03-15T21:28:05.672,time4:2030-05-15T15:21:59.672
        System.out.println(String.format("time4与time2相差{ %d }天", Period.between(time2.toLocalDate(), time4.toLocalDate()).getDays()));
        System.out.println(String.format("time4与time2相差{ %d }月", Period.between(time2.toLocalDate(), time4.toLocalDate()).getMonths()));
        System.out.println(String.format("time4与time2相差{ %d }年%s", Period.between(time2.toLocalDate(), time4.toLocalDate()).getYears(), "n"));
//        time4与time2相差{ 0 }天
//        time4与time2相差{ 2 }月
//        time4与time2相差{ 8 }年
		// time2:2022-03-15T21:28:05.672,time4:2030-05-15T15:21:59.672
        System.out.println(String.format("time2与time4相差{ %d }天", Period.between(time4.toLocalDate(), time2.toLocalDate()).getDays()));
        System.out.println(String.format("time2与time4相差{ %d }月", Period.between(time4.toLocalDate(), time2.toLocalDate()).getMonths()));
        System.out.println(String.format("time2与time4相差{ %d }年", Period.between(time4.toLocalDate(), time2.toLocalDate()).getYears()));
//        time2与time4相差{ 0 }天
//        time2与time4相差{ -2 }月
//        time2与time4相差{ -8 }年
        // ChronoUnit
        // time2:2022-03-15T21:28:05.672,time3:2023-05-15T15:21:59.672
        System.out.println(String.format("time3与time2相差{ %d }ms", ChronoUnit.MILLIS.between(time2, time3)));
        System.out.println(String.format("time3与time2相差{ %d }s", ChronoUnit.SECONDS.between(time2, time3)));
        System.out.println(String.format("time3与time2相差{ %d }min", ChronoUnit.MINUTES.between(time2, time3)));
        System.out.println(String.format("time3与time2相差{ %d }h", ChronoUnit.HOURS.between(time2, time3)));
        System.out.println(String.format("time3与time2相差{ %d }天", ChronoUnit.DAYS.between(time2, time3)));
        System.out.println(String.format("time3与time2相差{ %d }周", ChronoUnit.WEEKS.between(time2, time3)));
        System.out.println(String.format("time3与time2相差{ %d }月", ChronoUnit.MONTHS.between(time2, time3)));
        System.out.println(String.format("time3与time2相差{ %d }年%s", ChronoUnit.YEARS.between(time2, time3), "n"));
//        time3与time2相差{ 36784434000 }ms
//        time3与time2相差{ 36784434 }s
//        time3与time2相差{ 613073 } min
//        time3与time2相差{ 10217 }h
//        time3与time2相差{ 425 }天
//        time3与time2相差{ 60 }周
//        time3与time2相差{ 13 }月
//        time3与time2相差{ 1 }年
		// time2:2022-03-15T21:28:05.672,time4:2030-05-15T15:21:59.672
        System.out.println(String.format("time4与time2相差{ %d }ms", ChronoUnit.MILLIS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }s", ChronoUnit.SECONDS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }min", ChronoUnit.MINUTES.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }h", ChronoUnit.HOURS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }天", ChronoUnit.DAYS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }周", ChronoUnit.WEEKS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }月", ChronoUnit.MONTHS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }年", ChronoUnit.YEARS.between(time2, time4)));
//        time4与time2相差{ 257709234000 }ms
//        time4与time2相差{ 257709234 }s
//        time4与time2相差{ 4295153 } min
//        time4与time2相差{ 71585 }h
//        time4与time2相差{ 2982 }天
//        time4与time2相差{ 426 }周
//        time4与time2相差{ 97 }月
//        time4与time2相差{ 8 }年
注意点 1、时间一样
		LocalDateTime now = LocalDateTime.now();
        LocalDateTime time2 = now.plusMonths(2L).plusDays(3L);
        LocalDateTime time4 = now.plusMonths(4L).plusDays(3L).plusYears(1L);
        System.out.println(String.format("now  :%s", now));
        System.out.println(String.format("time2:%s", time2));
        System.out.println(String.format("time4:%s%s", time4, "n"));
//        now  :2022-01-12T15:42:27.806
//        time2:2022-03-15T15:42:27.806
//        time4:2023-05-15T15:42:27.806
        // Duration
        // time2:2022-03-15T15:42:27.806,time4:2023-05-15T15:42:27.806
        System.out.println(String.format("time2与time1相差{ %d }ms", Duration.between(time2, time4).toMillis()));
        System.out.println(String.format("time2与time1相差{ %d }s", Duration.between(time2, time4).getSeconds()));
        System.out.println(String.format("time2与time1相差{ %d }分钟", Duration.between(time2, time4).toMinutes()));
        System.out.println(String.format("time2与time1相差{ %d }h", Duration.between(time2, time4).toHours()));
        System.out.println(String.format("time2与time1相差{ %d }天%s", Duration.between(time2, time4).toDays(), "n"));
//        time2与time1相差{ 36806400000 }ms
//        time2与time1相差{ 36806400 }s
//        time2与time1相差{ 613440 }分钟
//        time2与time1相差{ 10224 }h
//        time2与time1相差{ 426 }天
        // ChronoUnit
        // time2:2022-03-15T15:42:27.806,time4:2023-05-15T15:42:27.806
        System.out.println(String.format("time4与time2相差{ %d }ms", ChronoUnit.MILLIS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }s", ChronoUnit.SECONDS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }min", ChronoUnit.MINUTES.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }h", ChronoUnit.HOURS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }天", ChronoUnit.DAYS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }周", ChronoUnit.WEEKS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }月", ChronoUnit.MONTHS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }年", ChronoUnit.YEARS.between(time2, time4)));
//        time4与time2相差{ 36806400000 }ms
//        time4与time2相差{ 36806400 }s
//        time4与time2相差{ 613440 } min
//        time4与time2相差{ 10224 }h
//        time4与time2相差{ 426 }天
//        time4与time2相差{ 60 }周
//        time4与time2相差{ 14 }月
//        time4与time2相差{ 1 }年
2、结束时间少1s
		LocalDateTime now = LocalDateTime.now();
        LocalDateTime time2 = now.plusMonths(2L).plusDays(3L);
        LocalDateTime time4 = now.plusMonths(4L).plusDays(3L).plusYears(1L).minusSeconds(1L);
        System.out.println(String.format("now  :%s", now));
        System.out.println(String.format("time2:%s", time2));
        System.out.println(String.format("time4:%s%s", time4, "n"));
//        now  :2022-01-12T15:45:58.941
//        time2:2022-03-15T15:45:58.941
//        time4:2023-05-15T15:45:57.941
        // Duration
        // time2:2022-03-15T15:45:58.941,time4:2023-05-15T15:45:57.941
        System.out.println(String.format("time4与time2相差{ %d }ms", Duration.between(time2, time4).toMillis()));
        System.out.println(String.format("time4与time2相差{ %d }s", Duration.between(time2, time4).getSeconds()));
        System.out.println(String.format("time4与time2相差{ %d }分钟", Duration.between(time2, time4).toMinutes()));
        System.out.println(String.format("time4与time2相差{ %d }h", Duration.between(time2, time4).toHours()));
        System.out.println(String.format("time4与time2相差{ %d }天%s", Duration.between(time2, time4).toDays(), "n"));
//        time2与time1相差{ 36806399000 }ms
//        time2与time1相差{ 36806399 }s
//        time2与time1相差{ 613439 }分钟
//        time2与time1相差{ 10223 }h
//        time2与time1相差{ 425 }天
        // ChronoUnit
        // time2:2022-03-15T15:45:58.941,time4:2023-05-15T15:45:57.941
        System.out.println(String.format("time4与time2相差{ %d }ms", ChronoUnit.MILLIS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }s", ChronoUnit.SECONDS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }min", ChronoUnit.MINUTES.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }h", ChronoUnit.HOURS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }天", ChronoUnit.DAYS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }周", ChronoUnit.WEEKS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }月", ChronoUnit.MONTHS.between(time2, time4)));
        System.out.println(String.format("time4与time2相差{ %d }年", ChronoUnit.YEARS.between(time2, time4)));
//        time4与time2相差{ 36806399000 }ms
//        time4与time2相差{ 36806399 }s
//        time4与time2相差{ 613439 } min
//        time4与time2相差{ 10223 }h
//        time4与time2相差{ 425 }天
//        time4与time2相差{ 60 }周
//        time4与time2相差{ 13 }月
//        time4与time2相差{ 1 }年

可以看到月数差比之前少了1个月,其他如:秒、分、时、日都少1了

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703632.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号