CRON

Intérprete de expresiones

segundos
minutos
horas
días
del mes
meses
días
de la semana
(años)
En el segundo 0, cada 10.º minuto a partir de 0 minuto, cada hora.
Esta herramienta interpreta el dialecto Quartz de las expresiones cron (org.quartz.CronExpression): seis o siete campos separados por espacios: segundos, minutos, horas, día del mes, mes, día de la semana y un año opcional. Exactamente uno de los campos día del mes y día de la semana debe ser '?', por lo que una expresión como '0 0 0 * * *' se rechaza aquí aunque otros planificadores la acepten. Consulta "Otros dialectos cron" más abajo para ver en qué se diferencian CronExpression de Spring y el cron clásico de Unix.
Descripción
NombreObligatorioPermitido
valores
Permitido
caracteres especiales

segundos

Sí

0-59

, - * /

minutos

Sí

0-59

, - * /

horas

Sí

0-23

, - * /

días del mes

Sí

1-31

, - * ? / L W

meses

Sí

1-12 o JAN-DEC

, - * /

días de la semana

Sí

1-7 o SUN-SAT

1 = domingo, 7 = sábado

, - * ? / L #

años

No

vacío o 1970-2099

, - * /

Explicación de los caracteres especiales
SignoExplicación

,

Separa valores consecutivos.

-

Especifica un rango de-a.

*

Todos los valores del campo; por ejemplo, en el campo de la hora significa 'cada hora'.

?

Útil cuando es necesario especificar un valor en uno de dos campos en los que el carácter está permitido, pero no en el otro. Por ejemplo, si quiero que el disparador se ejecute el día 5 del mes pero no me importa qué día de la semana sea, pondré '5' en el campo del día del mes y '?' en el campo del día de la semana. En este dialecto, exactamente uno de los campos día del mes y día de la semana debe ser '?': poner un valor en ambos, o '*' en ambos, se rechaza.

/

Se utiliza para especificar pasos. El primer valor indica cuándo comienza el paso y el segundo indica con qué frecuencia se ejecutará, por ejemplo, '0/15' en el campo de los minutos significa los minutos 0, 15, 30, 45, mientras que '5/15' significa la ejecución en los minutos 5, 20, 35 y 50.

#

La almohadilla '#' se utiliza para especificar el día 'enésimo' del mes; por ejemplo, el valor '4#3' en el campo del día de la semana significa el tercer miércoles del mes (día 4 = miércoles y #3 = tercer miércoles del mes).

L

La letra 'L' significa 'último' en los campos del día de la semana o del día del mes. Por ejemplo, '0 0 9 ? * 3L' significa el último martes de cada mes a las 9 de la mañana. En el campo del día del mes también se puede especificar 'LW', que significa el último día hábil del mes. Usada sola en el campo del día de la semana (solo 'L', sin día delante), significa sábado (día 7), no 'el último día de la semana'.

W

Especifica el día hábil (de lunes a viernes) más cercano al día del mes indicado. Por ejemplo, '1W' significa 'el día hábil más cercano al día 1 del mes'. Si el día 1 cae en domingo, el cron se ejecutará el lunes, día 2 del mes.

Ejemplos
ExpresiónDescripción

0 0 12 * * ?

Ejecutar todos los días a las 12:00.

0 0/20 * * * ?

Ejecutar cada 20 minutos, en los minutos 0, 20, 40.

0 15 10 * * ? 2023

Ejecutar a las 10:15 todos los días del año 2023.

* 30 3 ? * 1,7

Ejecutar cada segundo a las 3:30 el sábado y el domingo.

Otros dialectos cron
Esta herramienta (Quartz)Spring CronExpressionCron clásico de Unix

Número de campos

6 o 7

6

5, sin segundos

'?' en día del mes / día de la semana

obligatorio en exactamente un campo

opcional, actúa como '*'

no admitido

Día del mes y día de la semana juntos

rechazado

permitido: ambos deben coincidir (Y)

permitido: basta con uno (O)

Numeración de los días de la semana

1 = domingo … 7 = sábado

0 o 7 = domingo, 1 = lunes

0 o 7 = domingo, 1 = lunes