【问题标题】:Getting Simple Difference in Calendar Days [duplicate]在日历日中获得简单的差异[重复]
【发布时间】:2016-09-05 06:04:22
【问题描述】:

问题:获取两个日期之间的日历天数差异。例如,1996 年 6 月 28 日 23:59 与 1996 年 6 月 29 日 12:00 相差一天。

研究:我在网上做了很多研究,每个人似乎都只给出毫秒的差异,这给了你真正的时间差异,而不是日历天。

当前解决方案

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

我对当前时间和记录时间的日期时间进行了 int 转换,转换为天数(从而去掉任何小数)并取差值。这给我留下了日历日的实际转换;但是,我想知道是否只有一种书面方法可以为我做到这一点。

【问题讨论】:

  • 我不确定这与 MySQL 有什么关系

标签: java mysql


【解决方案1】:

由于 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());

【讨论】:

    【解决方案2】:

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

            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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-02
      • 1970-01-01
      • 1970-01-01
      • 2021-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多