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

时间:2016-09-04 20:10:44

标签: 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

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

2 个答案:

答案 0 :(得分:5)

自Java 8以来,存在java.time API,取代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());

答案 1 :(得分:0)

这是计算年份差异的另一种方法。您可以非常轻松地添加剩余的日期。

        Calendar c = Calendar.getInstance();
        int y = c.get(Calendar.YEAR);
        Calendar c2 = Calendar.getInstance();
        c2.set(Calendar.YEAR, 2013);
        int com = c.get(Calendar.YEAR) - c2.get(Calendar.YEAR);
        System.out.println(com);