我想找到两个日期之间的分钟差异。如果 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/