我在Java调度程序中遇到问题。我正在使用TimerTask
,当我在某个特定时间安排任务并更改操作系统时间时,TimerTask
线程没有获得时间更改更新。因此,计划任务不会在指定时间发生。当我正在进行夏令时时,我遇到了这个问题。
答案 0 :(得分:0)
一般问题可能是这样一个事实,即自1970年UTC以来Date
的毫秒是独立的日光时间变化。
要获取有关当前时间的信息,请参阅此答案:How to tackle daylight savings using Timezone in java
如何实施?在一个单独的线程中写一个观察者,每隔几秒检查一次,或者将这个任务添加到cron(Quartz?)。检查每次通话之间的时区偏移。如果他们发生变化,请使用该事件重新初始化您的应用。