我必须计算日期之间的差异,我找到了一种方法,但我得到了这个奇怪的结果,我错过了什么吗?
public static void main(String[] args) throws ParseException {
DateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm");
long result = format.parse("2012-03-25 24:00").getTime() - format.parse("2012-03-25 00:00").getTime();
System.out.println("Difference in hours: " + result/(1000*60*60));
result = format.parse("2012-03-26 24:00").getTime() - format.parse("2012-03-26 00:00").getTime();
System.out.println("Difference in hours: " + result/(1000*60*60));
}
结果如下: 小时差异:23 小时差异:24
感谢您的建议,现在我正在使用 Joda libray,当我以这种方式计算差异时,我有这个问题:
DateTime begin = new DateTime("2012-03-25T00:00+01:00");
DateTime end = new DateTime("2012-03-26T00:00+01:00");
Hours m = Hours.hoursBetween(begin, end);
如果我用这种方式来计算我得到 24 小时的小时数(因为我假设不考虑 DST)
考虑到夏令时(我已经尝试过不同的方法但我不明白),我应该使用什么课程/微积分来获得 23 小时的 Period 课程?
感谢所有的帮助...