我想找到两个日期之间的分钟差异。如果 2 个日期在同一个月(和同一年),我的代码运行良好,但似乎差异认为每个月为 31 天,因此日期:

 2016-02-29 12:21
 2016-03-1 12:21

我得到 4320 分钟或 72 小时

为了:
 2016-04-30 12:21
 2016-05-01 12:21

我得到 2880 分钟或 48 小时

我的代码,其中 d1 和 d2 是 Date 对象:
long getDateDiff(Date d1, Date d2, TimeUnit timeUnit) {
    long diff = d2.getTime() - d1.getTime(); //in millisec
    long diffMinutes = TimeUnit.MILLISECONDS.toMinutes(diff);
    return diffMinutes;
}

最佳答案

你的结果对我来说很奇怪。所以我试了一下:

    @Test
public void differenceDateTest() throws ParseException {
    DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm");
    Date date = dateFormat.parse("2016-02-29 12:21");
    Date date2 = dateFormat.parse("2016-03-01 12:21");
    System.out.println(date2.getTime() - date.getTime());
    long mili = date2.getTime() - date.getTime();
    System.out.println(TimeUnit.MILLISECONDS.toHours(mili)); // 24 hours.
}

它正好 24 小时返回。

关于java - 以分钟为单位的两个日期之间的差异-不同的月份-Java,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42289418/

10-13 03:27