Подтвердить что ты не робот

Java, добавление минут к дате, странная аномалия

С версией Java 1.5.0_06 для Windows и Ubuntu Linux:

Всякий раз, когда я добавляю минуты к дате "2008/10/05 00:00:00", кажется, что лишний час ошибочно добавлен.

т.е.: добавление 360 минут до 2008/10/05 00:00:00 в полночь должно прибыть в 2008/10/05 06:00:00

Но он прибывает в 2008/10/05 07:00:00

Совершенно недоумение заключается в том, что этот ТОЛЬКО происходит, когда день 2008/10/05, все остальные дни, когда я пытаюсь правильно выполнить добавление минут.

Я схожу с ума или это ошибка на Java?

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

    try {
        String date = "2008/10/05 00:00:00";
        int minutesToAdd = 360;  // 6 hrs

        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(date));
        cal.add(Calendar.MINUTE, minutesToAdd);
        System.out.println(cal.getTime());

    } catch (ParseException e) {}
4b9b3361

Ответ 1

В этот день есть переход к дневному сбережению.

Вы в Новой Зеландии? Если это так, это означает, что ваши файлы часовых поясов устарели. Лучше перейдите на сайт загрузки Java и загрузите новые; найдите "JDK DST Timezone Update Tool".

Ответ 2

Может ли это сэкономить летнее время?

Ответ 3

Взгляните на Joda-Time.

Из документации:

"Joda-Time была создана для радикального изменения обработки даты и времени на Java. Классы JDK Date and Calendar очень плохо спроектированы, имеют многочисленные ошибки и имеют нечетные характеристики производительности".