2011年6月5日日曜日

Xperia で GregorianCalendar に年月日をセット

Xperiaでカレンダーに値をセットしてゲットすると値がずれることがある。例えば 1995/6/5 を new GregorianCalendar(1995, 6 - 1, 5) として、Calendar.DATE をgetすると 4 が返ってくる。ちょっと調べてみたら、1976/5/3 から 2000/9/17 の期間はずれる。1942年あたりもずれる。同じコードをエミュレータで実行してみるとずれない。DATEをセットする前にゲットするとずれない。

GregorianCalendar calendar = new GregorianCalendar();
   calendar.set(Calendar.YEAR, year);
   calendar.set(Calendar.MONTH, month - 1);
   // Xperiaで日にちがずれる。
   calendar.get(Calendar.DATE);
   calendar.set(Calendar.DATE, day);

0 件のコメント:

コメントを投稿