-1

Java で 2 つの Calendar オブジェクトを比較しています。これは私がそれらのそれぞれを設定している方法です

Calendar calendar1 = Calendar.getInstance();
calendar1.set(2012, 6, 17, 13, 0);

そして、テーブル列 '2012-07-17 13:00:00' から次の値を取得し、それを Date Java オブジェクトに設定し、次にこの Date オブジェクトを使用して 2 番目の Calander オブジェクトを設定しています。

Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(/*Above date object who value is '2012-07-17 13:00:00'*/);

比較すると、両方の Calender オブジェクトが同じであるため、これが当てはまると予想されます

calendar2.compareTo(calendar1) >= 0

しかし、代わりに、これが真実になりつつあるのを見ています

calendar2.compareTo(calendar1) < 0

誰か助けてくれませんか?

4

3 に答える 3

1

以下は、何が起こっているかのアイデアを提供します (文字列を解析して の日付オブジェクトを生成すると仮定しますcalendar1):

Calendar calendar1 = Calendar.getInstance();
calendar1.set(2012, 6, 17, 13, 0);
System.out.println(calendar1.getTime());
Date date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2012-07-17 13:00:00");
System.out.println(date);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(date);
System.out.println(calendar2.compareTo(calendar1));
calendar1.set(Calendar.SECOND, 0); //setting second to 0
calendar1.set(Calendar.MILLISECOND, 0); //setting millisecond to 0
System.out.println(calendar2.compareTo(calendar1));

テスト実行結果:

火曜日 7 月 17 日 13:00:47 CDT 2012
火曜日 7 月 17 日 13:00:00 CDT 2012
-1
0
于 2012-07-15T03:54:03.753 に答える
0

@Bhesh Gurungからの提案の後、私は以下を使用しました

calendar1.set(Calendar.MILLISECOND, 0); calendar1.set(Calendar.SECOND, 0);

calendar2.set(Calendar.MILLISECOND, 0); calendar2.set(Calendar.SECOND, 0);

そしてそれはうまくいきました。

于 2012-07-15T04:07:07.897 に答える