Разбор I из 5

Разрыв и повтор: что делает перевод часов

Весной часть ночи не существует, осенью час проходит дважды. Как это выглядит в разных поясах и что с ночным запуском делают три распространённых правила.

Два полушария — разные даты

Перевод часов не сдвигает расписание — он меняет то, как местное время соотносится с UTC. В Берлине 25 октября 2026 года в 03:00 летнего времени часы переводят на 02:00: смещение меняется с +02:00 на +01:00, и час с 02:00 до 02:59 проходит дважды. 28 марта 2027 года переход обратный: в 02:00 часы сразу показывают 03:00, и времени с 02:00 до 02:59 в этот день нет.

В других поясах даты свои. Нью-Йорк возвращается на зимнее время 1 ноября 2026 года — на неделю позже Европы. Сидней в Южном полушарии в это же время года переходит на летнее: 4 октября 2026 года в 02:00 часы показывают 03:00.

Переводы почти всегда назначают на ночь, когда на часы смотрит меньше всего людей. Поэтому страдают как раз ночные задания: архивы, выгрузки и пересчёты, которые специально ставят на тихие часы.

Полчаса на Лорд-Хау и пояса без перевода

Не каждый перевод — целый час. На острове Лорд-Хау (пояс Australia/Lord_Howe) 4 октября 2026 года часы в 02:00 переводят на 02:30: смещение меняется с +10:30 на +11:00, и сутки длятся 23 часа 30 минут. Задание на 02:15 в этот день попадает в полчаса, которых нет.

Есть и пояса без переводов: Europe/Moscow и Asia/Kolkata живут с постоянным смещением, и расписание в них каждый день выглядит одинаково. Но если задание записано в поясе с переводом, а его результат ждут в Москве, разница между ними меняется дважды в год.

CronLens берёт правила из базы часовых поясов, встроенной в браузер. Власти иногда отменяют или переносят переводы с коротким предупреждением, и в давно не обновлявшемся браузере база может этого ещё не знать.

Три правила и что выбрать

«Буквально» — так поведение описывает crontab(5): время, которого нет, никогда не совпадает с расписанием, поэтому весенний запуск пропадает; время, которое проходит дважды, совпадает дважды, поэтому осенний запуск выполняется два раза.

«С догоном» — так описывает cron(8) в Debian: для заданий с фиксированным временем пропущенный весной запуск выполняется сразу после перевода, а осенний повтор второй раз не выполняется; задания по маске, со звёздочкой в поле минут или часов, просто идут по новым часам. «Пропуск и один раз» — так описан EventBridge Scheduler: весенний запуск пропускается, осенний выполняется один раз.

Какое правило действует у вас, решает ваш планировщик, а не CronLens. Если важно, чтобы задание выполнялось ровно раз в сутки в любую ночь, запишите его в UTC или поставьте на время вне интервала 01:00–03:59 местного времени — так переводят часы в Европе, США и Австралии. В других поясах перевод бывает в полночь или вечером: проверьте день перевода на циферблате. Это вариант, а не запрет: иногда задание обязано идти по местным часам, и тогда полезно заранее знать, что будет в две ночи в году.