私はjavaを初めて使用しています。私はJavaでの日付の算術に関するわずかな混乱を抱えています。私は2つの日付の間の違いを見つけたいシナリオを、次のようしている: -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"
になると予想していますが、これは私には得られません。
あなたは私がここでやっていることを私に示唆することができますか?そしてこの問題にアプローチする正しい方法は何ですか?
ありがとうございます。次のようにあなたは、単にlongに変換することができ、2つの日付の間の違いを見つけるために
日付の操作は難しいです。年は消えるだけではありません。可能であれば、新しいJava 8の日付クラスで 'Period'を試してください。 –
@EvanKnowles、私はjava 8を使用できません。私はjava7を使用しています。 –
@ user2393267 Java 7の場合は、java.timeの大部分の機能のバックポートである[ThreeTen-Backport](http://www.threeten.org/threetenbp/)プロジェクトを使用できます。同じ人によって建てられました。あるいは、(同じ人によって作られた)java.timeに影響を与えたフレームワークである[Joda-Time](http://www.joda.org/joda-time/)を使ってください。古い日時クラスはとても悪いので、避けてください。 –