【发布时间】:2021-12-12 12:44:11
【问题描述】:
您好想获取日期之间的天数。
以下是我尝试过的逻辑
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。 有什么想法吗?
【问题讨论】:
-
旁注:请避免使用过时的(双关语,抱歉)
java.util.Date和Calendar类。它们有很多已知问题,已被java.time包中的类取代。 -
我更改为 java.time,它按预期工作,谢谢
-
endDate和currentDate都应该使用相同的基数,即应该是final Calendar cal = Calendar.getInstance(); final Date currentDate = cal.getTime(); cal.add(Calendar.DATE, 1); final Date endDate = cal.getTime(); -
我建议你不要使用
Calendar和Date。这些课程设计不良且早已过时。相反,因为 Java 8 使用来自java.time, the modern Java date and time API 的LocalDate。
标签: java date calendar java-11