Ответ 1
В этот день есть переход к дневному сбережению.
Вы в Новой Зеландии? Если это так, это означает, что ваши файлы часовых поясов устарели. Лучше перейдите на сайт загрузки Java и загрузите новые; найдите "JDK DST Timezone Update Tool".
С версией 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) {}
В этот день есть переход к дневному сбережению.
Вы в Новой Зеландии? Если это так, это означает, что ваши файлы часовых поясов устарели. Лучше перейдите на сайт загрузки Java и загрузите новые; найдите "JDK DST Timezone Update Tool".
Может ли это сэкономить летнее время?
Взгляните на Joda-Time.
Из документации:
"Joda-Time была создана для радикального изменения обработки даты и времени на Java. Классы JDK Date and Calendar очень плохо спроектированы, имеют многочисленные ошибки и имеют нечетные характеристики производительности".