java 时间计算差值

计算月份:
DateTimeFormatter fmt = DateTimeFormatter.ofPattern(“yyyy/MM/dd”);
LocalDate startDate = LocalDate.parse(“2017/03/24”, fmt);
LocalDate endDate = LocalDate.parse(“2022/01/22”, fmt);
Period p = Period.between(startDate, endDate);
System.out.printf(“目标日期距离今天的时间差:%d 年 %d 个月 %d 天\n”, p.getYears(), p.getMonths(), p.getDays());
System.out.printf(“目标日期距离今天的时间差 %d 个月\n”, p.getYears()*12+ p.getMonths());
计算天数:
SimpleDateFormat sdf = new SimpleDateFormat(“yyyy/MM/dd”, Locale.ENGLISH);
Date startDate = sdf.parse(“2019/07/24”);
Date endDate = sdf.parse(“2019/07/30”);
long diffInMillis = Math.abs(startDate .getTime() - endDate .getTime());
long diff = TimeUnit.DAYS.convert(diffInMillis, TimeUnit.MILLISECONDS);
System.out.printf(“目标日期距离今天的时间差: %d 天\n”, diff );

总结

		SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd", Locale.ENGLISH);
        Date startDate = sdf.parse("2017/03/24");
        Date endDate = sdf.parse("2022/01/22");
        LocalDate startLocalDate = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        LocalDate endLocalDate = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
        Period p = Period.between(startLocalDate, endLocalDate);
        System.out.printf("目标日期距离今天的时间差:%d 年 %d 个月 %d 天\n", p.getYears(), p.getMonths(), p.getDays());
        System.out.printf("目标日期距离今天的时间差 %d 个月\n", p.getYears()*12+ p.getMonths());

        long diffInMillis = Math.abs(startDate.getTime() - endDate.getTime());
        long diff = TimeUnit.DAYS.convert(diffInMillis, TimeUnit.MILLISECONDS);
        System.out.printf("目标日期距离今天的时间差: %d 天\n", diff );

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值