java—EJB3.1TimerService是否支持夏时制?

g9icjywg  于 2021-07-12  发布在  Java
关注(0)|答案(0)|浏览(171)

我想创建一个可编程的调度程序,每天触发一次。它必须每天在同一时间触发,无论是白天节约时间是开还是关。所以如果是6点钟 "Europe/Berlin" (utc+1)当dst关闭时,它也应在6点钟dst打开时触发(utc+2)。
我想使用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是因为我在那里设置了计时器的时区。如果我错了,请纠正我。
上面的代码会按照我解释/想要的做吗?
我在这个答案中找到了另一种方法https://stackoverflow.com/a/20388073/2940429,但我希望有一个更舒适的方式像上面的。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题