站内搜索: 请输入搜索关键词

当前页面: 开发资料首页J2SE 专题定时器问题,更改系统时间后定时器停止触发?

定时器问题,更改系统时间后定时器停止触发?

摘要: 定时器问题,更改系统时间后定时器停止触发?


windows下,程序中使用了几个javax.swing.timer定时器。 定时器启动后正常,此时把操作系统时间往前改,比如改到昨天,发现所有的定时器都停止触发了,把操作系统时间往后改没关系。各位高手有碰到过这种情况吗?该怎么解决?


呵呵。。。没有做过。。。帮你顶顶。。。


不是停止触发,是触发时间没到!

定时器会记录下触发的时间,比如2006-09-01 12:30,000

触发时间间隔是1小时,那么下次触发时间就是 2006-09-01 13:30,000

如果你把系统时间改成 2006-08-01 12:30,000

那么你只能等一个月才能触发了^^

别着急,慢慢等就好了:)



原来如此,果真高手。有没有好的办法呢?


它是读取系统时间来触发的.


没有事做,程序运行了还去改系统时间.


你把程序停了,重起一遍应该就可以了


你把程序停了,重起一遍应该就可以了。是可以的,但是此方法不可取


to:zzhzzh204553(真的好想你)。如果用户运行程序后,又修改系统时间怎么办?不能限制用户不改系统时间吧


你可以换一种方法,不要用计时器触发,自己sleep()或者wait();
比如要隔一个小时运行一次:
while(true){
//todo ....
....
//do end
wait(60*60*1000);
}


不过,我不清楚wait()或者sleep()是不是也和系统有关。
如果也是相关的那就不行了。


嗯。sleep可以的。 帖子保留两天,看有没有更好的办法,难道java的定时器就没有想到系统时间会改的问题?


↑返回目录
前一篇: 高分帖:一个2G的文本文件,如何实现所有内容的完全颠倒?
后一篇: 如何把arraylist部分拷贝到另外一个arraylist里?