У меня есть такой код:
Log.d(TAG, "day=%d, month=%d, year=%s", day, month, year);
Calendar c = Calendar.getInstance();
c.clear();
c.set(Calendar.YEAR, year);
c.set(Calendar.MONTH, month);
c.set(Calendar.DAY_OF_MONTH, day);
Log.i(TAG, "Date is parsed to %tF", c.getTime(), c.get(Calendar.DAY_OF_MONTH));
И это журнал, который я получаю при выполнении:
day=11, month=11, year=1985
Date is parsed to 1985-12-10
Почему бы не 1985-12-11?Он работает правильно для некоторых дат или в режиме отладки.Но почему это не всегда работает?
У меня также есть похожие проблемы при работе с датой и при разборе дат из строки через SimpleDateFormat
РЕДАКТИРОВАТЬ: другие примеры выполнения этого кода:
day=1, month=0, year=2012
Date is parsed to 2012-01-01
day=25, month=11, year=2011
Date is parsed to 2011-12-25
day=4, month=10, year=1979
Date is parsed to 1979-11-03
day=3, month=11, year=1984
Date is parsed to 1984-12-02
день, месяц и год не могут быть изменены из других тем.