Григорианский календарь
-
28-09-2019 - |
Вопрос
Я столкнулся с странной проблемой с сбережениями дня. У меня есть программа Java, запланированная, чтобы бежать каждый день на 00:05 утра, но вчера она побежала 23:05. Я использую Gregorian Calendar, чтобы запланировать эту программу в Java. Это никогда не бегало 23:05 до этого, если кто-то не провел его вручную. Кто-нибудь знает, если это проблема с календарем?
Решение
Эта проблема почти наверняка связана с данным времени сбережения, хотя странно, что оно должно происходить около полуночи, так как выключатель DST обычно происходит в 2 утра.
Трудно сказать больше, не зная, в каком часовом поясе ваша машина устанавливается и провидения вашего фактического кода.
Другие советы
Разве это не связано с вопросами спасения дневного света? В прошлой ночью время было изменено с летнего времени в зимнее время в некоторых частях мира.
В лучшем случае, это работает на более старой версии Java, и она неуместно подумала, что летнее время началось воскресенье утром в США.
Внутренне Java хранит время в качестве компенсации GMT ... В частности, количество миллисекунд с 1 января 1970 года 00:00: 00.000 GMT (задокументировано в Calendar
Описание класса).
Если вы не хотите обновлять себя Java, вы все равно можете использовать Инструмент Updater TimeZone Чтобы обновить часовые появления Java, установленные в системе.
Примечание: это предположительно было исправлено в Java 5U6, если вы не в одном из других часовых поясов, упомянутых в Этот список.
Всемирное время DST против североамериканского DST иногда несовместимо.
В Европе DST изменяется в последнее воскресенье октября.http://en.wikipedia.org/wiki/daylight_saving_time_around_the_world#europe
В Северной Америке в первом воскресенье ноября изменяется в первом воскресенье ноября.http://en.wikipedia.org/wiki/daylight_saving_time_around_the_world#north_america.
Редактировать из-за комментариев, предоставляющих более точную информацию.
Я думаю, он побежал в 00:05, но в «новом» (зимнем) времени было 23:05.