文章目录

  • 概述
  • 示例
    • todayAt / tomorrowAt 今天/明天的某个时间
    • evenMinuteDate 返回下一分钟的开始时间
    • evenMinuteDateBefore 获取开始时间
    • dateOf 指定日期
    • nextGivenMinuteDate 下一个给定分钟日期
    • translateTime 转换时间
    • futureDate 未来时间
  • 示例源码

概述

官方API:
http://www.quartz-scheduler.org/api/2.2.1/index.html


示例

todayAt / tomorrowAt 今天/明天的某个时间

Date org.quartz.DateBuilder.todayAt(int hour, int minute, int second)Get a Date object that represents the given time, on today's date (equivalent to dateOf(int, int, int)). Parameters:
second The value (0-59) to give the seconds field of the date
minute The value (0-59) to give the minutes field of the date
hour The value (0-23) to give the hours field of the date
Returns:
the new date

例子

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// todayAt
Date runTime = DateBuilder.todayAt(17, 30, 45);
System.out.println("当前时间:" + sdf.format(new Date()));
System.out.println("runTime:" + sdf.format(runTime));

输出

当前时间:2017-11-16 00:39:06
runTime:2017-11-16 17:30:45

对应的方法有

  • todayAt:今天的某个时间

  • tomorrowAt:明天的某个时间


evenMinuteDate 返回下一分钟的开始时间

// evenMinuteDate
runTime = DateBuilder.evenMinuteDate(new Date());
System.out.println("当前时间:" + sdf.format(new Date()));
System.out.println("runTime:" + sdf.format(runTime));

输出

当前时间:2017-11-16 00:40:02
runTime:2017-11-16 00:41:00

对应的方法有

  • evenSecondDate(new Date()):下一秒

  • evenMinuteDate(new Date()):下一分钟

  • evenHourDate(new Date()):下一小时

  • evenSecondDateAfterNow():当前时间的下一秒

  • evenMinuteDateAfterNow():当前时间的下一分钟

  • evenHourDateAfterNow():当前时间的下一小时


evenMinuteDateBefore 获取开始时间

// evenMinuteDateBefore
runTime = DateBuilder.evenMinuteDateBefore(new Date());
System.out.println("当前时间:" + sdf.format(new Date()));
System.out.println("runTime:" + sdf.format(runTime));

输出

当前时间:2017-11-16 00:44:06
runTime:2017-11-16 00:44:00

对应的方法有

  • evenSecondDateBefore(new Date()):秒的开始执行时间,例如:2017-11-16 15:07:55

  • evenMinuteDateBefore(new Date()):分钟的开始执行时间,例如:2017-11-16 15:41:00

  • evenHourDateBefore(new Date()):小时的开始执行时间,例如:2017-11-16 15:00:00


dateOf 指定日期


// dateof
Date dateOf_1 = DateBuilder.dateOf(13, 10, 10);
Date dateOf_2 = DateBuilder.dateOf(13, 10, 10, 1, 1);
Date dateOf_3 = DateBuilder.dateOf(13, 10, 10, 1, 1, 2016);System.out.println("当前时间:" + sdf.format(new Date()));
System.out.println("dateOf_1:" + sdf.format(dateOf_1));
System.out.println("dateOf_2:" + sdf.format(dateOf_2));
System.out.println("dateOf_3:" + sdf.format(dateOf_3));

输出

当前时间:2017-11-16 00:45:39
dateOf_1:2017-11-16 13:10:10
dateOf_2:2017-01-01 13:10:10
dateOf_3:2016-01-01 13:10:10

nextGivenMinuteDate 下一个给定分钟日期

// nextGivenMinuteDate
runTime = DateBuilder.nextGivenMinuteDate(new Date(), 1);
System.out.println("当前时间:" + sdf.format(new Date()));
System.out.println("runTime:" + sdf.format(runTime));

输出

当前时间:2017-11-16 00:47:31
runTime:2017-11-16 00:50:00

对应的方法有

  • nextGivenSecondDate:下一个给定秒的时间

  • nextGivenMinuteDate:下一个给定分钟的时间


translateTime 转换时间

translateTime方法有三个参数(date,src,dest),返回转换后的时间

  • date:需要转换的时间
  • src:原始时区
  • dest:目标时区
// 转换时区 “美国/洛杉矶”
runTime = DateBuilder.translateTime(new Date(), TimeZone.getDefault(),
TimeZone.getTimeZone("America/Los_Angeles"));System.out.println("当前时间:" + sdf.format(new Date()));
System.out.println("runTime:" + sdf.format(runTime));

输出

当前时间:2017-11-16 00:51:56
runTime:2017-11-16 04:51:56

人在南美洲玻利维亚…,如果是国内的话,肯定不是这个输出了。


futureDate 未来时间

futureDate(int interval,DateBuilder.IntervalUnit unit)

  • interval:间隔

  • unit:间隔单位,毫秒、秒、分钟、小时、天、周、月、年

// futureDate
runTime = DateBuilder.futureDate(10, DateBuilder.IntervalUnit.MINUTE);
System.out.println("当前时间:" + sdf.format(new Date()));
System.out.println("runTime:" + sdf.format(runTime));

输出

当前时间:2017-11-16 00:54:10
runTime:2017-11-16 01:04:10

除了上面返回Date类型的方法之外还有另外几个方法 :4个返回DateBuilder类型方法

  • newDate()

  • newDateInLocale(Locale)

  • newDateInTimezone(Timezone)

  • newDateInTimeZoneAndLocale(Timezone, Locale)

7个void验证方法:

  • validateSecond(int)

  • validateMinute(int)

  • validateHour(int)

  • validateDayOfMonth(int)

  • validateDayOfWeek(int)

  • validateMonth(int)

  • validateYear(int)


示例源码

代码已托管到Github—> https://github.com/yangshangwei/SpringMaster

Quartz-DateBuilder解读相关推荐

  1. java quartz DateBuilder

    Trigger中经常使用Date对象,而DateBuilder是一个提供时间对象的便捷方法 1.常规获得时间 System.out.println(DateBuilder.dateOf(12, 30, ...

  2. 好记性不如烂博客之 Quartz InterruptableJob 可拦截任务

    我们的具体任务类继承InterruptableJob接口 就可以实现对任务方法的拦截 public interface InterruptableJob extends Job {void inter ...

  3. quartz mysql 初始化_quartz2.3.0(十五)执行、暂停、继续执行、清除,花式操作数据库中持久化的job任务...

    前提准备: 先在数据库中建立quartz需要的11张表(我这里用的是Oracle数据库),根据不同的数据库quartz分别提供了不同的初始化sql文件,sql文件路径在 quartz-2.3.0-SN ...

  4. Quartz-SimpleTrigger解读

    文章目录 概述 小例子 创建一个在某个时间点执行的 Trigger: 创建一个在某个时间点执行的 Trigger,并且随后每 10 秒执行一次,执行 10 次 创建一个 Trigger,并且在 5 分 ...

  5. Quartz教程二:API,Job和Trigger

    原文链接 | 译文链接 | 翻译:nkcoder | 校对:方腾飞 本系列教程由quartz-2.2.x官方文档翻译.整理而来,希望给同样对quartz感兴趣的朋友一些参考和帮助,有任何不当或错误之处 ...

  6. Quartz 之入门示例

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 环境:XP+Myeclipse6.5+JDK1.6  quartz官网:http://www.qua ...

  7. 【Quartz】插件的使用

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Quartz 框架提供了几种用于扩展平台能力的方式.通过使用各种 "钩子" (通 ...

  8. Quartz使用总结、Cron表达式

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. Quartz可以用来做什么? Quartz是一个任务调度框架.比如你遇到这样的问题 想每月25号,信 ...

  9. springboot和quartz整合实现动态定时任务(持久化单节点)

    Quartz是一个完全由java编写的开源作业调度框架,为在Java应用程序中进行作业调度提供了简单却强大的机制,它支持定时任务持久化到数据库,从而避免了重启服务器时任务丢失,支持分布式多节点,大大的 ...

最新文章

  1. 【c语言】蓝桥杯算法提高 三个整数的排序
  2. 2021年深度学习哪些方向比较有研究潜力?
  3. mysql 存储过程 嵌套if_mysql存储过程if嵌套if的写法
  4. JUST技术:管理海量空间数据的利器-空间填充曲线
  5. centos安装mysql 简书_在centos上安装mysql
  6. php运行资源库,如何在sublime上运行php
  7. 大数据职业理解_到底什么是大数据,大数据职业的具体工作内容是什么?
  8. Effective C++ -----条款05:了解C++默默编写并调用哪些函数
  9. Unity-粒子特效
  10. 如何拼局域网所有ip_在windows命令行批量ping局域网内IP
  11. 如何调整网站竞价关键词
  12. Nooi 一个Onedrive管理器
  13. 用python导入dmp到oracle
  14. navicat转换word表格
  15. 微信一次性订阅消息流程
  16. 导航栏不变,切换局部页面的方法
  17. 奥运五环-web前端
  18. android内嵌套cocos2dx,Cocos2dx项目嵌入到Android原生项目中
  19. js实现字符串转json对象的四种方法
  20. STM32基于正点原子ALIENTEK探索者开发板的跑马灯实验

热门文章

  1. opencv 显示图片(直接)
  2. C++函数模板(一)
  3. 30. Leetcode 83. 删除排序链表中的重复元素 (链表-双指针)
  4. 441. Arranging Coins
  5. Python爬虫应用实战-如何对爬取的数据进行数据存储?
  6. Flink从入门到精通100篇(二十)-跨境电商 Shopee 的实时数仓之路
  7. 从无到有算法养成篇:一文读懂有关Tree的前世今生
  8. 从C语言的角度重构数据结构系列(三)- 顺序存储结构和链式存储结构之顺序表
  9. tableau可视化数据分析60讲(一)-tableau概念性叙述及环境配置
  10. 纯干货-多场景下大屏可视化应用(文中含可视化源代码链接)