java中daysAfter,计算Java 8中两个日期之间的天数

问题

我知道有很多关于如何获得的问题,但我想要和使用新的Java 8 Date api的例子。我也知道JodaTime库,但我想要一种没有外部库的工作方式。

功能需要抱怨这些限制:

防止日期保存时间错误

输入是两个Date的对象(没有时间,我知道localdatetime,但我需要做日期实例)

#1 热门回答(226 赞)

如果你想要逻辑日历日,请使用296830392中的DAYS.between()方法:

LocalDate dateBefore;

LocalDate dateAfter;

long daysBetween = DAYS.between(dateBefore, dateAfter);

如果你想要24小时的日子(aduration),你可以改用Durationclass:

LocalDate today = LocalDate.now()

LocalDate yesterday = today.minusDays(1);

// Duration oneDay = Duration.between(today, yesterday); // throws an exception

Duration.between(today.atStartOfDay(), yesterday.atStartOfDay()).toDays() // another option

有关更多信息,请参阅this document(以及其他文档:Oracle的Java 8)。

#2 热门回答(75 赞)

基于VGR的评论,你可以使用以下内容:

ChronoUnit.DAYS.between(firstDate, secondDate)

#3 热门回答(21 赞)

你可以用until():

LocalDate independenceDay = LocalDate.of(2014, Month.JULY, 4);

LocalDate christmas = LocalDate.of(2014, Month.DECEMBER, 25);

System.out.println("Until christmas: " + independenceDay.until(christmas));

System.out.println("Until christmas (with crono): " + independenceDay.until(christmas, ChronoUnit.DAYS));

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值