'com.quartz.CronTrigger' interface provides 'getTimeZone'
method, it returns the time zone for which the cronExpression of
this CronTrigger will be resolved.
Example
TimeZone timeZone = cronTrigger.getTimeZone();
Find the below working example.
PrintJob.java
package com.sample.jobs;
import java.util.Map.Entry;
import java.util.TimeZone;
import org.quartz.Job;
import org.quartz.JobDataMap;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.impl.triggers.CronTriggerImpl;
public class PrintJob implements Job {
public void execute(JobExecutionContext jec) throws JobExecutionException {
System.out.println("********************************************");
System.out.println("Printing Job data map information");
JobDataMap jobDataMap = jec.getJobDetail().getJobDataMap();
for (Entry<String, Object> entry : jobDataMap.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
CronTriggerImpl cronTrigger = (CronTriggerImpl) jec.getTrigger();
System.out.println("\nPrinting Trigger Job data map information");
JobDataMap triggerJobDataMap = cronTrigger.getJobDataMap();
for (Entry<String, Object> entry : triggerJobDataMap.entrySet()) {
System.out.println(entry.getKey() + " : " + entry.getValue());
}
String jobName = cronTrigger.getJobName();
String jobGroup = cronTrigger.getJobGroup();
String triggerName = cronTrigger.getName();
String triggerGroup = cronTrigger.getGroup();
String cronExpresion = cronTrigger.getCronExpression();
TimeZone timeZone = cronTrigger.getTimeZone();
String expressionSummary = cronTrigger.getExpressionSummary();
String jobInfo = String.format("Trigger '%s' from group '%s' executing the job '%s' of group '%s'", triggerName,
triggerGroup, jobName, jobGroup);
System.out.println(jobInfo);
System.out.println("Time Zone : " + timeZone);
System.out.println("expressionSummary : " + expressionSummary);
System.out.println("Cron Expression : " + cronExpresion);
System.out.println("********************************************");
}
}
QuartzSchedulerEx.java
package com.sample.app;
import static org.quartz.DateBuilder.futureDate;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.TriggerKey.triggerKey;
import org.quartz.CronScheduleBuilder;
import org.quartz.CronTrigger;
import org.quartz.DateBuilder.IntervalUnit;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
import com.sample.jobs.PrintJob;
public class QuartzSchedulerEx {
public static void main(String args[]) throws SchedulerException, InterruptedException {
// Initiate a Schedule Factory
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
// Retrieve a scheduler from schedule factory
Scheduler scheduler = schedulerFactory.getScheduler();
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("Description", "This job prints some message to console");
JobDataMap triggerJobDataMap = new JobDataMap();
triggerJobDataMap.put("userName", "krishna123");
triggerJobDataMap.put("token", "myToken4321");
// Creating JobDetailImpl and link to our Job class
JobDetail printJobDetails = newJob(PrintJob.class).withIdentity("PrintJob", "PrintJobMessagesGroup")
.usingJobData(jobDataMap).build();
// Creating schedule time with trigger
CronTrigger trigger = (CronTrigger) (newTrigger().withIdentity(triggerKey("myTrigger", "myTriggerGroup"))
.withSchedule(CronScheduleBuilder.cronSchedule("0/3 * * * * ?"))
.startAt(futureDate(500, IntervalUnit.MILLISECOND)).withDescription("Job executes every 3 seconds")
.usingJobData(triggerJobDataMap).build());
scheduler.start();
// Schedule the jobs using triggers
scheduler.scheduleJob(printJobDetails, trigger);
}
}
Output
********************************************
Printing Job data map information
Description : This job prints some message to console
Printing Trigger Job data map information
userName : krishna123
token : myToken4321
Trigger 'myTrigger' from group 'myTriggerGroup' executing
the job 'PrintJob' of group 'PrintJobMessagesGroup'
Time Zone :
sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=7,lastRule=null]
expressionSummary : seconds:
0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57
minutes: *
hours: *
daysOfMonth: *
months: *
daysOfWeek: ?
lastdayOfWeek: false
nearestWeekday: false
NthDayOfWeek: 0
lastdayOfMonth: false
years: *
Cron Expression : 0/3 * * * * ?
********************************************
......
......
......