为了账号安全,请及时绑定邮箱和手机立即绑定

日历日中 2 个瞬间之间的区别

日历日中 2 个瞬间之间的区别

繁星coding 2021-05-31 14:10:35
所以我试图用我的代码获得一个特定的数字。现在我有:Instant Today = 2018-07-17T13:45:00ZInstant Expiration1 = 2018-07-18T11:00:00Zlong daysTilExp = Today.until(Expiration, Chronounit.DAYS)问题是,因为这不是恰好相隔 24 小时,它最终会返回,daysTilExp = 0但我希望daysTilExp = 1我试图将实际天数分开,两个 Instants 也是如此,即使我像这样更改 Expiration 的值:Instant Expiration1 = 2018-07-18T06:00:00Z而现在daysTilExp = 2。我在 StackOverflow 上查看了其他一些答案,但看起来人们并没有使用Instant,他们也不希望以相同的方式有所不同
查看完整描述

3 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

LocalDate 将删除时间部分和 LocalDate 对象比较将产生预期的结果:


LocalDateTime  today = LocalDateTime.parse("2018-07-17T13:45:00");

LocalDateTime  expiration = LocalDateTime.parse("2018-07-18T11:00:00");

LocalDate todayDate = today.toLocalDate();

LocalDate expirationDate = expiration.toLocalDate();

long days = todayDate.until(expirationDate, ChronoUnit.DAYS);

System.out.println(days);


查看完整回答
反对 回复 2021-06-02
?
繁星淼淼

TA贡献1775条经验 获得超11个赞

最好的方法是使用DAYS.between()方法来自java.time.temporal.ChronoUnit. 但这种方式仅适用于 Java 8+ 版本。例子:


Date start = new Date();

Date end = new Date(start.getTime() + 10_000);

long daysCount = DAYS.between(start.toInstant(), end.toInstance());


查看完整回答
反对 回复 2021-06-02
  • 3 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信