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