Java Timer在特定时间安排作业 - 忽略dst调整

时间:2013-01-14 22:08:14

标签: java timer

我们正在使用Java Timer(Java 1.7)来安排一些打印作业。无论DST如何,我们都希望每天在特定时间打印作业。目前,如果我们将作业设置为在凌晨4:00打印,周期为24小时,则会在DST日之前正确打印。在DST秋季,它在凌晨3:00而不是4:00打印。我怎样才能解决这个问题?我们希望它在一年中的每一天的特定时间打印。

2 个答案:

答案 0 :(得分:1)

您可以使用java.util.Calendar来获取时间(Date),因为Calendar类已经进行了DST调整。了解DailyIterator.class中如何实施{{1}}。

答案 1 :(得分:0)

将TimerTask实现为

class Task extends TimerTask {

    @Override
    public void run() {
        if (Calendar.getInstance().get(Calendar.HOUR_OF_DAY) == 4) {
            System.out.println(new Date());
        }
    }
}

并安排它在每小时的顶部运行。任务将决定当前区域设置中的哪个小时是凌晨4点