项目中在Spring中集成了Quartz,配置的每日凌晨执行的定时任务都是到了八点多才执行,经过一番查找,可能是时区问题造成的。
- 一种解决办法是在JVM启动参数中增加 --Duser.timezone=GMT+08
- 另一种办法是在配置文件中增加timeZone的配置
改JVM参数的方式,一但项目迁移实施人员可能会忘记改,所以决定再代码里做手脚。
1、获取一个TimeZone,使用java.util.TimeZone.getTimeZone(String ID)获取指定的TimeZone,ID有两种形式,一种为完整名称例如“ America/Los_Angeles”、“Asia/Shanghai”,或者一个自定义ID比如“GMT-8:00”
Spring配置如下
GMT+8:00
2、给TriggerBean注入