java时间戳动态,Java实现时间动态显示方法汇总

本文介绍了两种在Java中实现在界面上动态显示时间的方法:1. 使用java.util.Timer和TimerTask,精确更新显示,适合多任务共享;2. 利用线程简单实现。对比中,作者推荐使用TimerTask,因为它更便于资源管理。此外,文中还展示了如何扩展显示多国时间,并提到了关键代码和注意事项,如pack()方法和TimeZone的获取。
摘要由CSDN通过智能技术生成

本文所述实例可以实现Java在界面上动态的显示时间。具体实现方法汇总如下:

1.方法一 用TimerTask:

利用java.util.Timer和java.util.TimerTask来做动态更新,毕竟每次更新可以看作是计时1秒发生一次。

代码如下:

?

继承TimerTask来创建一个自定义的task,获取当前时间,更新displayArea.

然后创建一个timer的实例,每1秒执行一次timertask。由于用schedule可能会有时间误差产生,所以直接调用精度更高的scheduleAtFixedRate的。

2. 方法二:利用线程:

这个就比较简单了。具体代码如下:

?

比较:

个人倾向于方法一,因为Timer是可以被多个TimerTask共用,而产生一个线程,会增加多线程的维护复杂度。

注意如下代码:

?

将上面方法一稍微一修改,就可以显示多国时间。代码如下:

?

本来需要在updateTimeZone(TimeZone newZone)中,更新displayArea的。但是考虑到TimerTask执行的时间太短,才1秒钟,以肉眼观察,基本上是和立刻更新没区别。如果TimerTask执行时间长的话,这里就要立刻重新用心的时间更新一下displayArea。

补充:

①. pack() 用来自动计算屏幕大小;

②. TimeZone.getAvailableIDs() 用来获取所有的TimeZone。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值