首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TimeUnit Java返回零天

TimeUnit Java返回零天
EN

Stack Overflow用户
提问于 2021-10-27 08:12:50
回答 2查看 67关注 0票数 0

我想知道两个日期之间的天数。

下面是我尝试过的逻辑

代码语言:javascript
复制
final Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, 1);
final Date endDate = cal.getTime();
final Date currentDate = new Date();
System.out.println(TimeUnit.MILLISECONDS.toDays(endDate.getTime() - currentDate.getTime()));

它总是打印0。期望是打印1。有什么想法吗?

EN

回答 2

Stack Overflow用户

发布于 2021-10-27 08:27:18

一天是24*60*60*1000毫秒。

endDate.getTime() - currentDate.getTime()总是比这更短。

因此,您应该始终将结果加1:

代码语言:javascript
复制
System.out.println(TimeUnit.MILLISECONDS.toDays(endDate.getTime() - currentDate.getTime()) + 1);
票数 1
EN

Stack Overflow用户

发布于 2021-10-27 08:28:04

endDate.getTime() - currentDate.getTime()的结果只比一天少几毫秒,所以结果四舍五入为0。

如果你用currentDate初始化你的日历,你会得到预期的结果:

代码语言:javascript
复制
final Date currentDate = new Date();
final Calendar cal = Calendar.getInstance();
cal.setTime(currentDate);
cal.add(Calendar.DATE, 1);
final Date endDate = cal.getTime();
System.out.println(TimeUnit.MILLISECONDS.toDays(endDate.getTime() - currentDate.getTime()));
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69735028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档