在Java调度器Quartz Cron中设置多个时区

在Java调度器Quartz Cron中设置多个时区,java,cron,timezone,quartz-scheduler,Java,Cron,Timezone,Quartz Scheduler,我需要在午夜运行CRON,它会自动为我公司的员工分配一些定期任务。我面临的情况是,我的公司基本上在我们周围都有办公室,有超过1个时区。所以基本上,我希望这项工作是在特定的时区完成的。此外,我的服务器由UTC运行 如果我将EDT设置为基准时区(比UTC晚4小时),并将CRON设置为午夜触发,则CRON时间将为 04** 我认为可能的方式是,我将其设置为在以下时间触发7次,而不是仅设置一次: 0 0 4 * * ? [EDT] 0 0 5 * * ? [CDT] 0 0 6 * * ? [MDT]

我需要在午夜运行CRON,它会自动为我公司的员工分配一些定期任务。我面临的情况是,我的公司基本上在我们周围都有办公室,有超过1个时区。所以基本上,我希望这项工作是在特定的时区完成的。此外,我的服务器由UTC运行

如果我将EDT设置为基准时区(比UTC晚4小时),并将CRON设置为午夜触发,则CRON时间将为

04**

我认为可能的方式是,我将其设置为在以下时间触发7次,而不是仅设置一次:

0 0 4 * * ? [EDT]
0 0 5 * * ? [CDT]
0 0 6 * * ? [MDT]
0 0 7 * * ? [PDT]
0 0 8 * * ? [AKDT]
0 0 9 * * ? [HADT]
0 0 10 * * ? [HST]
因此,一旦任何一个触发,它将检查我的哪个办公室在这个时区内,并将执行此任务

我相信这可能行得通,但其他人还有其他选择吗?
此外,我还需要修复夏令时,我不确定我想怎么做。

我认为最简单的方法可能是有一个每小时运行一次的作业,然后它遍历所有的办公室,并在晚些时候找到任何现在的作业,直到最后一次运行作业时。(当然,你需要将其与办公室的时区保持一致。)这将为你解决DST问题,还可以应对计划程序宕机一段时间后的情况——下一次出现时,它将“赶上”它错过的所有办公室。

谢谢Jon,这似乎是解决问题的最佳方法,唯一的问题是石英计时在属性文件中看起来有点混乱。我同意。