Java 判断一个给定时间是否满足Cron表达式

筅森魡賤 提交于 2020-03-02 02:49:08

实现方式

  • 直接使用quartz的CronExpression#isSatisfiedBy(Date date)来判断
  • 在自己程序中创建一个工具类来实现,代码使用quartz的CronExpression

原因:

  1. 项目中使用的Spring boot的注解式定时任务,并没有使用quartz,所以为了使用一个CronExpression#isSatisfiedBy(Date date)而引入整个quartz不太合适
  2. quartz的CronExpression类完全可以单独拿出来使用,所以在自己项目中使用同名类,代码使用org.quartz.CronExpression的代码
import org.junit.Assert;
import org.junit.Test;
import org.quartz.CronExpression;

import java.text.SimpleDateFormat;

public class TestCron {

    @Test
    public void cron() throws Exception {

        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        CronExpression cronExpression = new CronExpression("0 0/5 8-19 * * ? *");

        boolean resCron = cronExpression.isSatisfiedBy(simpleDateFormat.parse("2019-09-09 19:55:00"));

        Assert.assertTrue(resCron);

    }
}
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!