JAVA. Это ошибка в классе java.util.Calendar или что?

Я много раз сталкивался с одной и той же проблемой.

Та же проблема была и с этим вопросом, и решение было таким же, Как сравнить известные часы и текущий час в Android?

Проблема:

Когда я использую Calendar calCurr = Calendar.getInstance();для получения объекта Calendar текущей даты и времени, он всегда возвращает меня неправильно.

Я поместил журналы и проверил их, и чтобы сделать их правильными, мне пришлось добавить годы и месяцы, и тогда я получил правильный объект для текущей даты и времени.

См. мой пример:

    Calendar calCurr = Calendar.getInstance();
    Log.i("Time in mili of Current - Normal", ""+calCurr.getTimeInMillis()); 
                // see what it gives? dont know why?

    Date date = new Date();
    calCurr.set(date.getYear()+1900, date.getMonth()+1, date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds());
                // so added one month to it

    Log.i("Time in mili of Current - after update", ""+calCurr.getTimeInMillis()); 
                // now get correct

Вопрос:

  • Почему он выдает неверный результат?
  • Это ошибка или моя концепция класса Calendar неверна?
  • скажи мне, что нужно было сделать для этого?

7
задан Community 23 May 2017 в 11:50
поделиться