3

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

4

2 回答 2

1

您可以java.util.Calendar用来获取时间 ( Date),因为Calendar该类已经进行了 DST 调整。查看清单 4 中的DailyIterator.class实现方式。 DailyIterator 类

于 2013-01-14T22:22:51.247 回答
0

Implement your TimerTask as

class Task extends TimerTask {

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

and schedule it to run at the top of every hour. Task will decide which hour is 4 am in the current Locale

于 2013-01-15T05:37:57.950 回答