Grails比较DateTime以获得小时数差异

Grails比较DateTime以获得小时数差异,datetime,grails,jodatime,date-comparison,Datetime,Grails,Jodatime,Date Comparison,我有下面的代码,我试图使用Joda比较两个日期,这样我就可以得到小时数的差异。这在同一天的两个日期都可以正常工作(参见下面的测试1)。然而,如果我在同一天比较两个而不是的日期,它只会给出错误的结果(见下面的测试2) 两次测试的打印结果 第一个任务是在同一天执行的,相差3小时 第二个任务是在第二天结束的任务。。。与上一个任务测试不同的是,它没有给出正确的差异 This is the END TIME :2012-10-12 14:15:00.0... This is the START TIME

我有下面的代码,我试图使用Joda比较两个日期,这样我就可以得到小时数的差异。这在同一天的两个日期都可以正常工作(参见下面的测试1)。然而,如果我在同一天比较两个而不是的日期,它只会给出错误的结果(见下面的测试2)

两次测试的打印结果

第一个任务是在同一天执行的,相差3小时

第二个任务是在第二天结束的任务。。。与上一个任务测试不同的是,它没有给出正确的差异

This is the END TIME :2012-10-12 14:15:00.0... This is the START TIME :2012-10-12 10:30:00.0
Task title :Test 1 ...The differnce in hours is : 3  The differnce in minutes is : 45

This is the END TIME :2012-10-12 22:00:00.0... This is the START TIME :2012-10-11 22:00:00.0
Task title :Test 999 ...The differnce in hours is : 0  The differnce in minutes is : 0

感谢您提供的任何帮助

以前从未使用过Jodatime,也没有测试过,但我确实发现了一些东西:

首先,Jodatime时段有一个方法toStandardHours(),这可能是您想要的,而不是.getHours()。然而,对于第二次测试,.getHours()返回0,因为.getDays()将返回1,.toStandardHours()将返回24。

此外,您还可以使用小时功能“hoursBetween”:

检查API:

This is the END TIME :2012-10-12 14:15:00.0... This is the START TIME :2012-10-12 10:30:00.0
Task title :Test 1 ...The differnce in hours is : 3  The differnce in minutes is : 45

This is the END TIME :2012-10-12 22:00:00.0... This is the START TIME :2012-10-11 22:00:00.0
Task title :Test 999 ...The differnce in hours is : 0  The differnce in minutes is : 0
 static Hours   hoursBetween(ReadableInstant start, ReadableInstant end)