问题描述
我想找到两个日期之间的小时差。。
我尝试使用Joda-Time API:
SELECT * FROM table WHERE (DATE(dateColumn)=curdate() AND column1='something' OR column1='somethingElse') AND column2 IS NOT NULL ORDER BY column1
但是当date1 = IST 2019年7月1日星期一08:30:00和date2 = IST 2019年7月1日星期一12:30:00时会抛出异常
public static long getDateTimeDiffInHours(Date date1,Date date2) {
Interval interval = new Interval(date2.getTime(),date1.getTime());
Duration period = interval.toDuration();
return period.getStandardHours();
}
请向我解释原因以及如何解决此问题。我正在使用Java 8。
解决方法
您可以在持续时间内使用duratin api(查找天/分钟/小时)
Math.abs( Duration.ofMillis(endTime).minusMillis(StartTime).toHours())
将答案编辑为结束时间,因为您可能错过的开始时间少于开始时间,但始终尝试在尝试之前检查结束时间和开始时间。