public final class DateBuilder extends Object
DateBuilder is used to conveniently create
java.util.Date instances that meet particular criteria.
Quartz provides a builder-style API for constructing scheduling-related
entities via a Domain-Specific Language (DSL). The DSL can best be utilized
through the usage of static imports of the methods on the classes
TriggerBuilder, JobBuilder,
DateBuilder, JobKey, TriggerKey and
the various ScheduleBuilder implementations.
Client code can then use the DSL to write code such as this:
JobDetail job = newJob (MyJob.class).withIdentity ("myJob").build ();
Trigger trigger = newTrigger ().withIdentity (triggerKey ("myTrigger", "myTriggerGroup"))
.withSchedule (simpleSchedule ().withIntervalInHours (1).repeatForever ())
.startAt (futureDate (10, MINUTES))
.build ();
scheduler.scheduleJob (job, trigger);
TriggerBuilder,
JobBuilder| Modifier and Type | Field and Description |
|---|---|
static long |
MILLISECONDS_IN_DAY |
static long |
SECONDS_IN_MOST_DAYS |
| Modifier and Type | Method and Description |
|---|---|
DateBuilder |
atHourMinuteAndSecond(int atHour,
int atMinute,
int atSecond) |
DateBuilder |
atHourOfDay(int atHour)
Set the hour (0-23) for the Date that will be built by this builder.
|
DateBuilder |
atMinute(int atMinute)
Set the minute (0-59) for the Date that will be built by this builder.
|
DateBuilder |
atSecond(int atSecond)
Set the second (0-59) for the Date that will be built by this builder, and
truncate the milliseconds to 000.
|
Date |
build()
Build the Date defined by this builder instance.
|
static Date |
dateOf(int hour,
int minute,
int second)
Get a
Date object that represents the given time, on today's
date (equivalent to todayAt(int, int, int)). |
static Date |
dateOf(int hour,
int minute,
int second,
int dayOfMonth,
Month month)
Get a
Date object that represents the given time, on the given
date. |
static Date |
dateOf(int hour,
int minute,
int second,
int dayOfMonth,
Month month,
int year)
Get a
Date object that represents the given time, on the given
date. |
static Date |
evenHourDate(Date date)
Returns a date that is rounded to the next even hour above the given date.
|
static Date |
evenHourDateAfterNow()
Returns a date that is rounded to the next even hour after the current
time.
|
static Date |
evenHourDateBefore(Date date)
Returns a date that is rounded to the previous even hour below the given
date.
|
static Date |
evenMinuteDate(Date date)
Returns a date that is rounded to the next even minute above the given
date.
|
static Date |
evenMinuteDateAfterNow()
Returns a date that is rounded to the next even minute after the current
time.
|
static Date |
evenMinuteDateBefore(Date date)
Returns a date that is rounded to the previous even minute below the given
date.
|
static Date |
evenSecondDate(Date date)
Returns a date that is rounded to the next even second above the given
date.
|
static Date |
evenSecondDateAfterNow()
Returns a date that is rounded to the next even second after the current
time.
|
static Date |
evenSecondDateBefore(Date date)
Returns a date that is rounded to the previous even second below the given
date.
|
static Date |
futureDate(int interval,
EIntervalUnit unit) |
DateBuilder |
inLocale(Locale locale)
Set the Locale for the Date that will be built by this builder (if "null",
system default will be used)
|
DateBuilder |
inMonth(Month inMonth)
Set the month (1-12) for the Date that will be built by this builder.
|
DateBuilder |
inMonthOnDay(Month inMonth,
int onDay) |
DateBuilder |
inTimeZone(TimeZone timezone)
Set the TimeZone for the Date that will be built by this builder (if
"null", system default will be used)
|
DateBuilder |
inYear(int inYear)
Set the year for the Date that will be built by this builder.
|
static DateBuilder |
newDate()
Create a DateBuilder, with initial settings for the current date and time
in the system default timezone.
|
static DateBuilder |
newDateInLocale(Locale lc)
Create a DateBuilder, with initial settings for the current date and time
in the given locale.
|
static DateBuilder |
newDateInTimezone(TimeZone tz)
Create a DateBuilder, with initial settings for the current date and time
in the given timezone.
|
static DateBuilder |
newDateInTimeZoneAndLocale(TimeZone tz,
Locale lc)
Create a DateBuilder, with initial settings for the current date and time
in the given timezone and locale.
|
static Date |
nextGivenMinuteDate(Date date,
int minuteBase)
Returns a date that is rounded to the next even multiple of the given
minute.
|
static Date |
nextGivenSecondDate(Date date,
int secondBase)
Returns a date that is rounded to the next even multiple of the given
minute.
|
DateBuilder |
onDay(int onDay)
Set the day of month (1-31) for the Date that will be built by this
builder.
|
static Date |
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)). |
static Date |
tomorrowAt(int hour,
int minute,
int second)
Get a
Date object that represents the given time, on
tomorrow's date. |
static Date |
translateTime(Date date,
TimeZone aSrcTZ,
TimeZone aDestTZ)
Translate a date & time from a users time zone to the another (probably
server) time zone to assist in creating a simple trigger with the right
date & time.
|
static void |
validateDayOfMonth(int day) |
static void |
validateDayOfWeek(DayOfWeek dayOfWeek) |
static void |
validateHour(int hour) |
static void |
validateMinute(int minute) |
static void |
validateMonth(Month month) |
static void |
validateSecond(int second) |
static void |
validateYear(int year) |
public static final long SECONDS_IN_MOST_DAYS
public static final long MILLISECONDS_IN_DAY
public static DateBuilder newDate()
public static DateBuilder newDateInTimezone(TimeZone tz)
public static DateBuilder newDateInLocale(Locale lc)
public static DateBuilder newDateInTimeZoneAndLocale(TimeZone tz, Locale lc)
public DateBuilder atHourOfDay(int atHour)
public DateBuilder atMinute(int atMinute)
public DateBuilder atSecond(int atSecond)
public DateBuilder atHourMinuteAndSecond(int atHour, int atMinute, int atSecond)
public DateBuilder onDay(int onDay)
public DateBuilder inMonth(Month inMonth)
public DateBuilder inMonthOnDay(Month inMonth, int onDay)
public DateBuilder inYear(int inYear)
public DateBuilder inTimeZone(TimeZone timezone)
public DateBuilder inLocale(Locale locale)
public static Date futureDate(int interval, EIntervalUnit unit)
public static Date tomorrowAt(int hour, int minute, int second)
Get a Date object that represents the given time, on
tomorrow's date.
second - The value (0-59) to give the seconds field of the dateminute - The value (0-59) to give the minutes field of the datehour - The value (0-23) to give the hours field of the datepublic static Date 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)).
second - The value (0-59) to give the seconds field of the dateminute - The value (0-59) to give the minutes field of the datehour - The value (0-23) to give the hours field of the datepublic static Date dateOf(int hour, int minute, int second)
Get a Date object that represents the given time, on today's
date (equivalent to todayAt(int, int, int)).
second - The value (0-59) to give the seconds field of the dateminute - The value (0-59) to give the minutes field of the datehour - The value (0-23) to give the hours field of the datepublic static Date dateOf(int hour, int minute, int second, int dayOfMonth, Month month)
Get a Date object that represents the given time, on the given
date.
second - The value (0-59) to give the seconds field of the dateminute - The value (0-59) to give the minutes field of the datehour - The value (0-23) to give the hours field of the datedayOfMonth - The value (1-31) to give the day of month field of the datemonth - The value (1-12) to give the month field of the datepublic static Date dateOf(int hour, int minute, int second, int dayOfMonth, Month month, int year)
Get a Date object that represents the given time, on the given
date.
second - The value (0-59) to give the seconds field of the dateminute - The value (0-59) to give the minutes field of the datehour - The value (0-23) to give the hours field of the datedayOfMonth - The value (1-31) to give the day of month field of the datemonth - The value (1-12) to give the month field of the dateyear - The value (1970-2099) to give the year field of the datepublic static Date evenHourDateAfterNow()
Returns a date that is rounded to the next even hour after the current time.
For example a current time of 08:13:54 would result in a date with the time of 09:00:00. If the date's time is in the 23rd hour, the date's 'day' will be promoted, and the time will be set to 00:00:00.
public static Date evenHourDate(Date date)
Returns a date that is rounded to the next even hour above the given date.
For example an input date with a time of 08:13:54 would result in a date with the time of 09:00:00. If the date's time is in the 23rd hour, the date's 'day' will be promoted, and the time will be set to 00:00:00.
date - the Date to round, if null the current time will be
usedpublic static Date evenHourDateBefore(Date date)
Returns a date that is rounded to the previous even hour below the given date.
For example an input date with a time of 08:13:54 would result in a date with the time of 08:00:00.
date - the Date to round, if null the current time will be
usedpublic static Date evenMinuteDateAfterNow()
Returns a date that is rounded to the next even minute after the current time.
For example a current time of 08:13:54 would result in a date with the time of 08:14:00. If the date's time is in the 59th minute, then the hour (and possibly the day) will be promoted.
public static Date evenMinuteDate(Date date)
Returns a date that is rounded to the next even minute above the given date.
For example an input date with a time of 08:13:54 would result in a date with the time of 08:14:00. If the date's time is in the 59th minute, then the hour (and possibly the day) will be promoted.
date - the Date to round, if null the current time will be
usedpublic static Date evenMinuteDateBefore(Date date)
Returns a date that is rounded to the previous even minute below the given date.
For example an input date with a time of 08:13:54 would result in a date with the time of 08:13:00.
date - the Date to round, if null the current time will be
usedpublic static Date evenSecondDateAfterNow()
Returns a date that is rounded to the next even second after the current time.
public static Date evenSecondDate(Date date)
Returns a date that is rounded to the next even second above the given date.
date - the Date to round, if null the current time will be
usedpublic static Date evenSecondDateBefore(Date date)
Returns a date that is rounded to the previous even second below the given date.
For example an input date with a time of 08:13:54.341 would result in a date with the time of 08:13:54.000.
date - the Date to round, if null the current time will be
usedpublic static Date nextGivenMinuteDate(Date date, int minuteBase)
Returns a date that is rounded to the next even multiple of the given minute.
For example an input date with a time of 08:13:54, and an input minute-base of 5 would result in a date with the time of 08:15:00. The same input date with an input minute-base of 10 would result in a date with the time of 08:20:00. But a date with the time 08:53:31 and an input minute-base of 45 would result in 09:00:00, because the even-hour is the next 'base' for 45-minute intervals.
More examples:
| Input Time | Minute-Base | Result Time |
|---|---|---|
| 11:16:41 | 20 | 11:20:00 |
| 11:36:41 | 20 | 11:40:00 |
| 11:46:41 | 20 | 12:00:00 |
| 11:26:41 | 30 | 11:30:00 |
| 11:36:41 | 30 | 12:00:00 |
| 11:16:41 | 17 | 11:17:00 |
| 11:17:41 | 17 | 11:34:00 |
| 11:52:41 | 17 | 12:00:00 |
| 11:52:41 | 5 | 11:55:00 |
| 11:57:41 | 5 | 12:00:00 |
| 11:17:41 | 0 | 12:00:00 |
| 11:17:41 | 1 | 11:08:00 |
date - the Date to round, if null the current time will be
usedminuteBase - the base-minute to set the time onnextGivenSecondDate(Date, int)public static Date nextGivenSecondDate(Date date, int secondBase)
Returns a date that is rounded to the next even multiple of the given minute.
The rules for calculating the second are the same as those for calculating
the minute in the method getNextGivenMinuteDate(..).
date - the Date to round, if null the current time will be
usedsecondBase - the base-second to set the time onnextGivenMinuteDate(Date, int)public static Date translateTime(Date date, TimeZone aSrcTZ, TimeZone aDestTZ)
date - the date to translateaSrcTZ - the original time-zoneaDestTZ - the destination time-zonepublic static void validateDayOfWeek(DayOfWeek dayOfWeek)
public static void validateHour(int hour)
public static void validateMinute(int minute)
public static void validateSecond(int second)
public static void validateDayOfMonth(int day)
public static void validateMonth(Month month)
public static void validateYear(int year)
Copyright © 2016–2021 Philip Helger. All rights reserved.