2

現在の日付を取得すると4、現在の曜日として返されます。しかし、で日付を設定すると、現在の曜日としてcalendar.set(mYear, mMonth, mDay);取得されます。7日付が同じであることを確認しましたが、すべて同じように見えますが、別の日になります。

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
Date date = new Date();
Calendar calendario = Calendar.getInstance();    
Log.w("TAG",""+"********:"+calendario.get(Calendar.DAY_OF_WEEK));
Log.w(4);


mYear = "2012";
mMonth = "10";
mDay = "10";

Calendar calendario = Calendar.getInstance();
calendario.set(mYear, mMonth, mDay);
Log.w("TAG","---------: "+calendario.get(Calendar.DAY_OF_WEEK));
    Log.w(7);

誰かがそれが起こっているかもしれないという考えを持っていますか?

ありがとう!

4

3 に答える 3

12

考えられる問題は、Calendarが数か月間ゼロベースのインデックスを使用することですしたがって、カレンダーを10月に設定しようとしている場合は、10ではなく9を使用する必要があります。

これは愚かで一貫性のないカレンダーですか?はい!代わりに、日付と時刻を操作するためにJoda-TimeAPIを使用してください。私の知る限り、 JSR 310が登場するまでは、現在デファクトスタンダードです。

于 2012-10-10T13:41:33.470 に答える
0

int month=9; int year=2012; int day=10; calendario.set(2012, 9, 10);

10 月には 9 を使用します。1 月から 12 月は 0 から 11 としてトリガーされます。

于 2012-10-10T13:57:08.393 に答える