Cron到人类可读的字符串

Sav*_*sis 16 java cron quartz-scheduler

我正在使用Quartz with Java来安排工作.有一件事是我将cron表达式存储在数据库中,我想将它们呈现给用户,但是更具可读性.所以我想知道是否有一个实用程序可以将cron表达式转换为人类可读的字符串.就像是 :

""0 30 10-13?*WED,FRI"将成为"每周三和周五10:30,11:30,12:30和13:30发生火灾."

小智 26

将cron表达式转换为人类可读字符串的Java库:https://github.com/RedHogs/cron-parser

  • 我很喜欢Stackoverflow甚至在被问到问题5年后才能提供正确答案.:)干杯 (14认同)

小智 10

是的,我确实理解了你的问题.但我应该更好地解释我的答案.

不,我不知道任何可以帮助你以"人类"可读形式获得cron表达的工具.但是通过访问CronExpression,您可以创建自己的.

试着打电话

cronTrigger.getExpressionSummary() 
Run Code Online (Sandbox Code Playgroud)

关于cron表达式:

"0/2 * * 4 * ?"
Run Code Online (Sandbox Code Playgroud)

它返回以下字符串:

seconds: 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58
minutes: *
hours: *
daysOfMonth: 4
months: *
daysOfWeek: ?
lastdayOfWeek: false
nearestWeekday: false
NthDayOfWeek: 0
lastdayOfMonth: false
calendardayOfWeek: false
calendardayOfMonth: false
years: *
Run Code Online (Sandbox Code Playgroud)

通过访问CronExpression对象,您可以创建自己的"人类"表达式.


kek*_*kec 5

cron-utils可能对这项任务很有用,因为它提供了人类可读的描述,并且不需要完全成熟的调度程序来提供它们。有据可查并支持多种 cron 格式。

在文档中的代码片段下方:

//create a descriptor for a specific Locale
CronDescriptor descriptor = CronDescriptor.instance(Locale.UK);

//parse some expression and ask descriptor for description
String description = descriptor.describe(parser.parse("*/45 * * * * *"));
//description will be: "every 45 seconds"
Run Code Online (Sandbox Code Playgroud)