Java EJB3.1 TimerService是否知道夏令时?
我想创建一个可编程的调度程序,每天触发一次。无论日光节约时间是开启还是关闭,它都必须每天在同一时间触发。因此,如果在DST关闭时在Java EJB3.1 TimerService是否知道夏令时?,java,dst,ejb-3.1,Java,Dst,Ejb 3.1,我想创建一个可编程的调度程序,每天触发一次。无论日光节约时间是开启还是关闭,它都必须每天在同一时间触发。因此,如果在DST关闭时在“Europe/Berlin”(UTC+1)中将其设置为6点钟,则在DST打开时(UTC+2)也应在6点钟触发 我想使用EJB TimerService,但找不到任何关于DST感知的信息 一些示例代码: import javax.annotation.PostConstruct; import javax.annotation.Resource; import ja
“Europe/Berlin”
(UTC+1)中将其设置为6点钟,则在DST打开时(UTC+2)也应在6点钟触发
我想使用EJB TimerService,但找不到任何关于DST感知的信息
一些示例代码:
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import javax.ejb.ScheduleExpression;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.ejb.Timeout;
import javax.ejb.TimerService;
@Singleton
@Startup
public class MyScheduler
{
@Resource
private TimerService timerService;
@Timeout
void myCallbackMethod ()
{
//do something ...
}
@PostConstruct
void init()
{
ScheduleExpression scheduleExpression = new ScheduleExpression();
scheduleExpression.hour("6");
scheduleExpression.timezone("Europe/Berlin");
timerService.createCalendarTimer(scheduleExpression);
}
}
我之所以使用ScheduleExpression,是因为设置计时器的时区是在那里完成的。如果我错了,请纠正我
上述代码是否符合我的解释/要求
我在这个答案中找到了另一种方法,但我希望能有一种更舒适的方法,就像上面的方法一样