在日历日中获得简单的差异

Jac*_*lan 0 java mysql

问题:在两个日期之间的日历天中获得差异.例如,6/28/1996年23:59与6/29/1996 12:00相差一天.

研究:我在网上进行了大量的研究,每个人似乎只给出了毫秒的差异,这给你真正的时间差异,但不是在日历日.

现行解决方案

(int) ((new java.sql.Date(System.currentTimeMillis()).getTime()/day_conversion)) - (int) (rs.getDate("attempt_time").getTime()/day_conversion) > 0
Run Code Online (Sandbox Code Playgroud)

我做了一个int转换到转换为日期的日期(从而丢弃任何小数)到当前时间和记录时间并取得差异.这让我得到了日历日的实际转换; 但是,我想知道是否只有一种书面方法可以为我做这件事.

小智 5

从Java 8开始,存在java.timeAPI,取代java.util.Date和相关类,并提供了解决问题的非常简洁的方法:

LocalDateTime date1 = LocalDateTime.of(1996, 6, 28, 23, 59);
LocalDateTime date2 = LocalDateTime.of(1996, 6, 29, 12, 59);

Period difference = Period.between(date1.toLocalDate(), date2.toLocalDate());
System.out.println(difference.getDays());
Run Code Online (Sandbox Code Playgroud)