java 获取一天内crontab任务执行的时间点
时间:2022-07-23
本文章向大家介绍java 获取一天内crontab任务执行的时间点,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
获取当天crontab任务执行的时间点 网上有如下方法来获取执行时间点
List<Date> dates = TriggerUtils.computeFireTimesBetween(cronTriggerImpl, null, from, to);
但是,貌似这个方法已经过时无法使用了。 可以通过下面的方法,获取当天一整天内任务执行的时间点。
import org.quartz.CronExpression;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.text.ParseException;
import java.text.SimpleDateFormat;
/**
* Created by LiChao on 2018/6/1
*/
public class QuartzTest {
public static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
public static SimpleDateFormat df2 = new SimpleDateFormat("yyyy-MM-dd");
public static void main(String[] args) throws ParseException {
Date nextTime = df.parse(df2.format(new Date()) + " 00:00:00");
Date to = new Date(nextTime.getTime() + 24*3600*1000);
CronExpression expression;
List<Date> crontimes = new ArrayList<>();
expression = new CronExpression("0 0/30 9-17 * * ?");
for(;nextTime.getTime()<=to.getTime();){
nextTime = expression.getNextValidTimeAfter(nextTime);
if(nextTime.getTime()>=to.getTime()) break;
crontimes.add(nextTime);
}
for(int i=0;i<crontimes.size();i++){
System.out.println(df.format(crontimes.get(i)));
}
}
}
输出如下:
2018-06-01 09:00:00
2018-06-01 09:30:00
2018-06-01 10:00:00
2018-06-01 10:30:00
2018-06-01 11:00:00
2018-06-01 11:30:00
2018-06-01 12:00:00
2018-06-01 12:30:00
2018-06-01 13:00:00
2018-06-01 13:30:00
2018-06-01 14:00:00
2018-06-01 14:30:00
2018-06-01 15:00:00
2018-06-01 15:30:00
2018-06-01 16:00:00
2018-06-01 16:30:00
2018-06-01 17:00:00
2018-06-01 17:30:00
Process finished with exit code 0
引入依赖包
<dependency>
<groupId>opensymphony</groupId>
<artifactId>quartz-all</artifactId>
<version>1.6.3</version>
</dependency>
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- 【android系统】使用s3来上传下载文件
- 【Spark on Kubernetes】Executor环境变量
- Python获取字典值
- 应用程序InetlliJ IDEA不能打开
- yum install空间不足
- prometheus-nginxlog-exporter构建Nginx日志监控
- s3cmd put文件的过程
- Ceph RGW配置Nginx代理出现S3Error: 403 (Forbidden)
- OmniDiskSweeper清理系统文件
- 【Kubernetes】通过ConfigMap修改容器的DNS
- 【Tensorflow 2.x】检验MKL
- kubernetes dashboard insecure配置
- seqtk抽取reads
- Version of Delve is too old for this version of Go【Goland Debug】报错
- python之turtle模块-黄金螺线