Fecha y hora

Generador cron Quartz · Comprueba el calendario de la regla

Edita una expresión de Java Quartz y revisa los campos y las fechas que coinciden con sus condiciones.

Generador cron Quartz

Expresión

La entrada se procesa en este navegador y no se envía a ningún servidor.

Campos y fechas coincidentes

Opciones

Fecha ISO con segundos. Sin zona se usa la IANA elegida. Las horas repetidas/inexistentes necesitan Z o desplazamiento. Año local de inicio: 1970–2099.

Se omiten horas inexistentes; las repetidas usan el desplazamiento posterior sin volver antes del inicio local. Los datos del navegador/JVM y los ajustes del trigger pueden diferir.

Hasta 512 unidades UTF-16, 1–1.000 fechas, diez años naturales locales y el año 2099 como máximo. El cálculo se detiene a los cinco segundos.

Constructor por campos

Los cambios quedan en el borrador hasta revisar y aplicar la vista previa.

0 0 9 ? * MON-FRI

Segundo/minuto 0–59; hora 0–23; día 1–31; mes 1–12; semana 1=DOM–7=SÁB; año 1970–2099 (vacío para omitir). Solo un campo de día debe ser ?.

Subconjunto Java Quartz 2.3.2: listas, rangos, pasos numéricos, ?, L, L-n, LW, nW, nL y n#k. Selectores especiales solos. Sin pasos con nombres, rangos mixtos ni L-nW.

La entrada o las opciones han cambiado. Actualiza los resultados antes de exportarlos.

El Generador cron Quartz ayuda a revisar horarios que cruzan medianoche o dependen del último día del mes. Una regla que termina de madrugada no se interpreta contando campos solamente: también hay que comprobar qué días y horas selecciona.

Puedes crear expresiones cron por campos o verificar cron a partir de una expresión cron Quartz existente. El borrador conserva la entrada hasta que confirmes el cambio. La sintaxis correcta y una lista completa son resultados distintos: febrero no tiene día 31 aunque el número esté permitido.

Por qué usar este Generador cron Quartz

Elegir la condición de día sin cambios ocultos

El Generador cron Quartz exige exactamente un ? entre día del mes y día de la semana. Si ambos contienen condiciones, muestra el conflicto y conserva el texto. No elimina una de ellas automáticamente; puedes revisar la sustitución antes de aplicarla.

Dos rutas para día del mes y día de la semana salen de una entrada; solo una está seleccionada.

Separar fin de mes y último día laborable

L selecciona el último día del calendario; LW el último lunes a viernes dentro del mes. Si el mes acaba en domingo, LW selecciona el viernes anterior. La lista permite comprobar el cierre mensual sin confundir un día fijo con el final real del mes.

Dos calendarios iguales destacan el último domingo y el viernes anterior, con las columnas del fin de semana sombreadas.

Relaciona el borrador con el intervalo de búsqueda

01

Carga los campos antes de sustituir

Cargar campos descompone la expresión actual sin reemplazarla. Las plantillas también modifican solo el borrador. Deja el año vacío para seis campos o escribe una restricción para siete. La vista previa indica cuántos valores cambiarán; Deshacer recupera entrada, opciones y resultado juntos.

02

Fija un inicio sin ambigüedad

El ejemplo comienza el 1 de enero de 2026 en UTC. Ahora prepara un nuevo inicio para confirmar. Introduce una fecha ISO con segundos. Sin sufijo se usa la zona IANA elegida; una hora local repetida o inexistente necesita Z o un desplazamiento explícito.

03

Comprueba el recuento antes de exportar

Se muestran 50 fechas y se amplían en grupos de 50. Copiar incluye el informe completo y Descargar genera JSON. El cálculo automático espera 350 ms; al desactivarlo puedes usar Analizar o Ctrl/Cmd + Enter. Cualquier cambio bloquea inmediatamente los resultados desactualizados.

Las condiciones que producen cada fecha

Segundos obligatorios y año opcional

El orden es segundo, minuto, hora, día, mes, día de la semana y, opcionalmente, año. La expresión normalizada conserva si el año se escribió. Omitir el séptimo campo no elimina los segundos ni convierte la regla en una entrada de Linux crontab.

Días relativos calculados por mes

L-n retrocede desde fin de mes; nW busca el lunes a viernes más cercano sin salir de ese mes. nL selecciona el último día de la semana indicado y n#k su aparición número k. FRI#3 y 6L pueden dar viernes diferentes.

Rangos que cruzan medianoche

22-2 abarca las horas 22, 23, 0, 1 y 2; NOV-FEB cruza el final del año. En minutos, 5/15 selecciona 5, 20, 35 y 50 y reinicia cada hora. Los pasos numéricos operan dentro de su campo. Los rangos de años deben ser ascendentes.

Próximas ejecuciones con contexto horario

Cada coincidencia incluye fecha local, desplazamiento UTC e instante UTC. El informe guarda el inicio y el límite de búsqueda. Las reglas poco frecuentes muestran cuántos resultados se pidieron y cuántos se encontraron, sin presentar una lista parcial como completa.

Sintaxis admitida y límites de la vista previa

Subconjunto habitual de Java Quartz 2.3.2
Una línea de seis o siete campos, hasta 512 unidades UTF-16. No convierte entre Spring, Quartz.NET, AWS ni Jenkins. Segundos y minutos: 0–59; horas: 0–23; meses: 1–12. Domingo es 1 y sábado 7. Solo uno de los dos campos de día debe ser ?.
Selectores especiales sin mezclar
El día admite L, L-1 a L-30, LW y 1W a 31W. El día de la semana admite L solo como sábado, nL y n#1 a n#5. Se rechazan listas de selectores especiales, varias condiciones # y L-nW. Los horarios compuestos pueden requerir varios triggers.
Nombres y pasos numéricos por separado
JAN–DEC y SUN–SAT no distinguen mayúsculas. Los extremos de un rango deben ser ambos nombres o ambos números. Se rechazan pasos con nombres, como JAN-MAR/2, y rangos mixtos. Usa pasos numéricos o listas explícitas para evitar interpretaciones inesperadas del parser Java.
Fechas ausentes y búsqueda limitada
Si no existe el día 31, 31W o la quinta aparición semanal, se omite el mes en lugar de mover la fecha. W significa lunes a viernes, sin festivos. Años e inicio local: 1970–2099. Se buscan hasta diez años naturales locales, con un máximo de 1.000 fechas y cinco segundos de cálculo.
No se ejecuta ni simula el trabajo
Se omiten horas inexistentes por cambio horario. En horas repetidas suele elegirse el desplazamiento posterior, sin retroceder los campos locales antes del inicio. Los datos horarios del navegador y de la JVM pueden diferir. Calendarios festivos, misfires, reintentos, concurrencia y ejecución quedan fuera de la vista previa.

Preguntas del Generador cron Quartz

¿Puede un horario empezar por la noche y terminar de madrugada?

Sí. 0 0 22-2 ? * * selecciona las horas 22, 23, 0, 1 y 2 de cada día. Si añades una condición de lunes a viernes, también limita los días de las horas de madrugada: no hereda automáticamente el día en que empezó la noche. Revisa las fechas cercanas al fin de semana.

¿Cómo programo el último día del mes?

En Java Quartz puedes usar 0 0 9 L * ? para las 09:00 del último día. L se ajusta a la duración de cada mes. La misma solución no es una expresión válida de Linux crontab. Para el último lunes a viernes del mes, sustituye L por LW.

¿Cómo ejecuto varios Jobs con horarios diferentes?

Cada trabajo debe asociarse a los triggers correspondientes en tu aplicación Quartz. Esta página analiza una expresión cada vez; no crea trabajos ni administra su registro. Prepara y comprueba cada horario por separado y conserva el informe con la zona y el inicio usados.

¿Puedo seleccionar el lunes que cae entre los días 2 y 8?

Ese requisito combina día del mes y día de la semana. Java Quartz 2.3.2 no permite imponer ambas condiciones en una sola expresión. No equivale siempre al segundo lunes. Usa una condición semanal junto con un filtro de calendario o de aplicación adecuado; este generador no crea ese filtro.

¿0 0 0 ? * SUN se ejecuta al empezar o al terminar el domingo?

Selecciona las 00:00:00 al comienzo del domingo, justo después de las 23:59:59 del sábado, según la zona del trigger. SUN es domingo, equivalente a 1 en Java Quartz. Las tres primeras cifras corresponden a segundo, minuto y hora.

¿Una fecha inesperada?

Pasa al trigger una regla con fechas revisadas

Usa el Generador cron Quartz para contrastar campos y fechas antes de copiar la expresión a tu configuración Java Quartz. Comprueba allí la zona horaria y la política del trigger.

Una fecha coincidente es una previsión, no una prueba de ejecución.