首页 > 解决方案 > TimeUnit Java 返回零天

问题描述

嗨想得到日期之间的天数。

以下是我尝试过的逻辑

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。有什么想法吗?

标签: javadatecalendarjava-11

解决方案


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

endDate.getTime() - currentDate.getTime()总是比那个短。

所以你应该总是在结果中加 1:

System.out.println(TimeUnit.MILLISECONDS.toDays(endDate.getTime() - currentDate.getTime()) + 1);

推荐阅读