Quartz-DateBuilder解读
文章目錄
- 概述
- 示例
- todayAt / tomorrowAt 今天/明天的某個(gè)時(shí)間
- evenMinuteDate 返回下一分鐘的開始時(shí)間
- evenMinuteDateBefore 獲取開始時(shí)間
- dateOf 指定日期
- nextGivenMinuteDate 下一個(gè)給定分鐘日期
- translateTime 轉(zhuǎn)換時(shí)間
- futureDate 未來(lái)時(shí)間
- 示例源碼
概述
官方API:
http://www.quartz-scheduler.org/api/2.2.1/index.html
示例
todayAt / tomorrowAt 今天/明天的某個(gè)時(shí)間
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("當(dāng)前時(shí)間:" + sdf.format(new Date())); System.out.println("runTime:" + sdf.format(runTime));輸出
當(dāng)前時(shí)間:2017-11-16 00:39:06 runTime:2017-11-16 17:30:45對(duì)應(yīng)的方法有
-
todayAt:今天的某個(gè)時(shí)間
-
tomorrowAt:明天的某個(gè)時(shí)間
evenMinuteDate 返回下一分鐘的開始時(shí)間
// evenMinuteDate runTime = DateBuilder.evenMinuteDate(new Date()); System.out.println("當(dāng)前時(shí)間:" + sdf.format(new Date())); System.out.println("runTime:" + sdf.format(runTime));輸出
當(dāng)前時(shí)間:2017-11-16 00:40:02 runTime:2017-11-16 00:41:00對(duì)應(yīng)的方法有
-
evenSecondDate(new Date()):下一秒
-
evenMinuteDate(new Date()):下一分鐘
-
evenHourDate(new Date()):下一小時(shí)
-
evenSecondDateAfterNow():當(dāng)前時(shí)間的下一秒
-
evenMinuteDateAfterNow():當(dāng)前時(shí)間的下一分鐘
-
evenHourDateAfterNow():當(dāng)前時(shí)間的下一小時(shí)
evenMinuteDateBefore 獲取開始時(shí)間
// evenMinuteDateBefore runTime = DateBuilder.evenMinuteDateBefore(new Date()); System.out.println("當(dāng)前時(shí)間:" + sdf.format(new Date())); System.out.println("runTime:" + sdf.format(runTime));輸出
當(dāng)前時(shí)間:2017-11-16 00:44:06 runTime:2017-11-16 00:44:00對(duì)應(yīng)的方法有
-
evenSecondDateBefore(new Date()):秒的開始執(zhí)行時(shí)間,例如:2017-11-16 15:07:55
-
evenMinuteDateBefore(new Date()):分鐘的開始執(zhí)行時(shí)間,例如:2017-11-16 15:41:00
-
evenHourDateBefore(new Date()):小時(shí)的開始執(zhí)行時(shí)間,例如: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("當(dāng)前時(shí)間:" + 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));輸出
當(dāng)前時(shí)間: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:10nextGivenMinuteDate 下一個(gè)給定分鐘日期
// nextGivenMinuteDate runTime = DateBuilder.nextGivenMinuteDate(new Date(), 1); System.out.println("當(dāng)前時(shí)間:" + sdf.format(new Date())); System.out.println("runTime:" + sdf.format(runTime));輸出
當(dāng)前時(shí)間:2017-11-16 00:47:31 runTime:2017-11-16 00:50:00對(duì)應(yīng)的方法有
-
nextGivenSecondDate:下一個(gè)給定秒的時(shí)間
-
nextGivenMinuteDate:下一個(gè)給定分鐘的時(shí)間
translateTime 轉(zhuǎn)換時(shí)間
translateTime方法有三個(gè)參數(shù)(date,src,dest),返回轉(zhuǎn)換后的時(shí)間
- date:需要轉(zhuǎn)換的時(shí)間
- src:原始時(shí)區(qū)
- dest:目標(biāo)時(shí)區(qū)
輸出
當(dāng)前時(shí)間:2017-11-16 00:51:56 runTime:2017-11-16 04:51:56人在南美洲玻利維亞…,如果是國(guó)內(nèi)的話,肯定不是這個(gè)輸出了。
futureDate 未來(lái)時(shí)間
futureDate(int interval,DateBuilder.IntervalUnit unit)
-
interval:間隔
-
unit:間隔單位,毫秒、秒、分鐘、小時(shí)、天、周、月、年
輸出
當(dāng)前時(shí)間:2017-11-16 00:54:10 runTime:2017-11-16 01:04:10除了上面返回Date類型的方法之外還有另外幾個(gè)方法 :4個(gè)返回DateBuilder類型方法
-
newDate()
-
newDateInLocale(Locale)
-
newDateInTimezone(Timezone)
-
newDateInTimeZoneAndLocale(Timezone, Locale)
7個(gè)void驗(yàn)證方法:
-
validateSecond(int)
-
validateMinute(int)
-
validateHour(int)
-
validateDayOfMonth(int)
-
validateDayOfWeek(int)
-
validateMonth(int)
-
validateYear(int)
示例源碼
代碼已托管到Github—> https://github.com/yangshangwei/SpringMaster
總結(jié)
以上是生活随笔為你收集整理的Quartz-DateBuilder解读的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Quartz-Cron表达式统计最近几次
- 下一篇: Quartz-JobListener解读