在伦敦时间安排任务,而系统时间是纽约

时间:2011-04-01 13:49:55

标签: java datetime cron scheduled-tasks quartz-scheduler

我们的系统配置了美国/东部时间,我们有一些必须在特定的欧洲/伦敦时间发生的计划任务。我们如何做到这一点,并确保我们的任务在白天时间变化生效时正确启动?

我们使用Quartz进行调度。目前,我们使用SimpleTrigger而非CronTrigger来安排任务。 docs表示CronTrigger应该工作 - 但我认为这假定计划时间和系统时间在同一时区。

3 个答案:

答案 0 :(得分:4)

CronTrigger确实可以更好地满足您的目的,因为您可以使用其setTimeZone方法来定义解析触发器CronExpression时将使用的时区。不,预定的时间和系统时间不需要在同一时区。所以,它应该工作。 (当然,请注意您链接到的文档中有关夏令时和crontriggers的注释。)

答案 1 :(得分:2)

CronTrigger只要您使用正确的时区构建它就应该没问题 - 您可以使用CronScheduleBuilder.inTimeZone确保时区。至少那是我对文档的解释......

答案 2 :(得分:0)

您也可以使用SimpleTrigger,但是您必须注意构建日期以用作触发器的startTime属性(在所需时区中构建该日期)。