/** * <p> * Returns the time zone for which the <code>cronExpression</code> of * this <code>CronTrigger</code> will be resolved. * </p> */ public TimeZone getTimeZone() { if ( this.cronEx != null ) { return this.cronEx.getTimeZone(); } if ( this.timeZone == null ) { this.timeZone = TimeZone.getDefault(); } return this.timeZone; }
/** * Indicates whether the given date satisfies the cron expression. Note that * milliseconds are ignored, so two Dates falling on different milliseconds * of the same second will always have the same result here. * * @param date the date to evaluate * @return a boolean indicating whether the given date satisfies the cron * expression */ public boolean isSatisfiedBy(Date date) { Calendar testDateCal = Calendar.getInstance(getTimeZone()); testDateCal.setTime(date); testDateCal.set(Calendar.MILLISECOND, 0); Date originalDate = testDateCal.getTime(); testDateCal.add(Calendar.SECOND, -1); Date timeAfter = getTimeAfter(testDateCal.getTime()); return ((timeAfter != null) && (timeAfter.equals(originalDate))); }
Calendar adjustCal = Calendar.getInstance(getTimeZone()); adjustCal.setTime(date); adjustCal.set(Calendar.MILLISECOND, 0);
public Object clone() { CronExpression copy = null; try { copy = new CronExpression(getCronExpression()); if(getTimeZone() != null) copy.setTimeZone((TimeZone) getTimeZone().clone()); } catch (ParseException ex) { // never happens since the source is valid... throw new IncompatibleClassChangeError("Not Cloneable."); } return copy; } }
protected Date getTimeAfter(Date afterTime) { Calendar cl = Calendar.getInstance(getTimeZone()); day = getLastDayOfMonth(mon, cl.get(Calendar.YEAR)); java.util.Calendar tcal = java.util.Calendar.getInstance(getTimeZone()); tcal.set(Calendar.SECOND, 0); tcal.set(Calendar.MINUTE, 0); day = ((Integer) daysOfMonth.first()).intValue(); java.util.Calendar tcal = java.util.Calendar.getInstance(getTimeZone()); tcal.set(Calendar.SECOND, 0); tcal.set(Calendar.MINUTE, 0);