DevToolPal
UK

Cron-вираз

Щодня опівночі

Запускається раз на добу о 00:00. Те саме, що макроси @daily і @midnight.

0 0 * * * Відкрити в парсері cron-виразів

Розбір за полями

Поле Значення Відповідає
Хвилина 0 0
Година 0 0
День місяця * Будь-яке значення
Місяць * Будь-яке значення
День тижня * Будь-яке значення

Найближчі запуски

Приклад: перші 6 запусків після 1 січня 2026 р. (UTC).

  1. пт, 2 січ. 2026 р., 00:00
  2. сб, 3 січ. 2026 р., 00:00
  3. нд, 4 січ. 2026 р., 00:00
  4. пн, 5 січ. 2026 р., 00:00
  5. вт, 6 січ. 2026 р., 00:00
  6. ср, 7 січ. 2026 р., 00:00

Готові варіанти

crontab
0 0 * * * /path/to/command

Додайте рядок через crontab -e. Завдання виконується в часовому поясі сервера, якщо не задано CRON_TZ або TZ.

Kubernetes CronJob
apiVersion: batch/v1
kind: CronJob
metadata:
  name: every-day-at-midnight
spec:
  schedule: "0 0 * * *"
  timeZone: "Etc/UTC"
  concurrencyPolicy: Forbid
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: job
              image: busybox:1.36
              command: ["/bin/sh", "-c", "date; echo run"]

Задайте spec.timeZone (Kubernetes 1.27+); без нього розклад іде за часовим поясом controller manager, зазвичай UTC.

GitHub Actions
on:
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:

GitHub Actions завжди використовує UTC, приймає інтервали від 5 хвилин і під навантаженням може запускати завдання із запізненням.

Quartz
0 0 0 * * ?

У Quartz секунди стоять першими, а в дні місяця чи дні тижня потрібен знак ?. Дні тижня мають номери 1–7 від неділі, тож надійніше писати назви.

Spring
@Scheduled(cron = "0 0 0 * * *")

Spring @Scheduled(cron = …) приймає шість полів: секунди, а потім звичайні п’ять.

Часті запитання

› Чи добра північ для щоденних завдань?

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

› У якому часовому поясі виконується 0 0 * * *?

Cron використовує часовий пояс машини чи сервісу, що його запускає. У Linux це системний пояс, якщо не задано CRON_TZ або TZ; CronJob у Kubernetes підтримує spec.timeZone; GitHub Actions завжди працює в UTC.

› Як перевірити розклад перед розгортанням?

Відкрийте 0 0 * * * у парсері cron-виразів на цьому сайті. Він пояснить кожне поле й покаже найближчі запуски за місцевим часом або в UTC просто в браузері.