在java中查找日期之间的差异
我是java新手。我对java中的日期算法有点困惑。我有以下场景,我想找出两个日期之间的差异:-
java.util.Date objDt1 = getDate1FromSrc1(); // I am obtaining it from src1
java.util.Date objDt2 = getDate2FromOtherSrc(); // I am getting dt2 by other way.
现在,我想找出两个日期之间的差异,输出必须是另一个日期对象
因此,我编写了以下代码:-
Calendar objCal1 = Calendar.getInstance();
Calendar objCal2 = Calendar.getInstance();
objCal1.setTime(objDt1);
objCal2.setTime(objDt2);
objCal1.add(Calendar.DAY_OF_MONTH, -objCal2.get(Calendar.DAY_OF_MONTH));
objCal1.add(Calendar.MONTH, -objCal2.get(Calendar.MONTH));
objCal1.add(Calendar.YEAR, -objCal2.get(Calendar.YEAR));
objCal1.add(Calendar.HOUR_OF_DAY, -objCal2.get(Calendar.HOUR_OF_DAY));
objCal1.add(Calendar.MINUTE, -objCal2.get(Calendar.MINUTE));
objCal1.add(Calendar.SECOND, -objCal2.get(Calendar.SECOND));
java.util.Date objDiff = objCal1.getTime();
但是,我得到了一些非常好的结果。例如,如果objDt1是"02/22/2016 09:00:00"
,objDt2是"02/22/2016 11:00:00"
,那么我希望objDiff是"02:00:00"
作为输出,但我没有得到
你能告诉我我在这里做错了什么,解决这个问题的正确方法是什么吗
提前谢谢
# 1 楼答案
为了找出两个日期之间的差异,您可以简单地将其转换为long,如下所示:
如果您希望这种差异以
HH:mm:ss
格式出现,那么您可以这样做: