Quartz-DateBuilder解读
文章目錄
- 概述
- 示例
- 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:10nextGivenMinuteDate 下一個給定分鐘日期
// 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:目標時區
輸出
當前時間:2017-11-16 00:51:56 runTime:2017-11-16 04:51:56人在南美洲玻利維亞…,如果是國內的話,肯定不是這個輸出了。
futureDate 未來時間
futureDate(int interval,DateBuilder.IntervalUnit unit)
-
interval:間隔
-
unit:間隔單位,毫秒、秒、分鐘、小時、天、周、月、年
輸出
當前時間: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解读的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Quartz-Cron表达式统计最近几次
- 下一篇: Quartz-JobListener解读