3

Javaカレンダーのadd()機能に問題があります。ギブまたはテイクは、旅行サイトで出発する日付のラウンドアバウトの日付を提供するために使用されます。

end.add(Calendar.DATE, Integer.parseInt(giveOrTake));

コードは上記のとおりで、私が使用しているテスト条件は、日付として2012年7月29日を選択し、3日間で取得または取得することです。ドキュメントによると、これは2012年1月8日として公開されるはずですが、2012年7月1日に公開されます。

メソッドに渡されたときにgiveOrTakeをチェックしましたが、問題ないので、何が起こっているのかわかりません。giveOrTake値をハードコーディングしても、エラーが発生します。

4

3 に答える 3

5

私のために働く:

import java.util.*;

public class Test {
    public static void main (String []args) {
        Calendar calendar = Calendar.getInstance();
        calendar.set(2012, Calendar.JULY, 29);
        calendar.add(Calendar.DATE, 3);
        System.out.println(calendar.getTime()); // August 1st
    }
}

私の推測では、呼び出すに月を間違えたようです。呼び出しでは 0 から始まる月の番号が使用されるため、上記の呼び出しで月として6が使用されaddていることに注意してください。set

質問に対する私のコメントによると、可能であればJoda Timeに移動した方がはるかに良いことに注意してください...

于 2012-06-20T16:35:43.357 に答える
-1

日付形式の問題でした。yyyymmdd「yyyyMMdd」であるべき時に設定されました。

于 2012-06-26T15:09:51.913 に答える