加速或减慢时间 - 时间与系统时钟不同的时钟?

时间:2013-03-31 07:40:51

标签: java time clock

我的目标是加快或减慢时间。

注意:双引号中的所有时间单位(“一段时间”)都不是真正的时间单位。它们是时间的单位时间。

我想制作一个与普通时钟完全相同的时钟,除了250毫秒= 1“秒”,60“秒”或更确切地说250 * 60毫秒= 1分钟等。我也想成为能够更改此时钟以使用任何其他毫秒值作为1秒,例如1000(正常,现实世界时间),6000毫秒(即6秒= 1“秒”)等。

是否有可靠的API或代码来执行此操作?如果没有,那我该怎么办?

我在SO上看到了一个问题,但没有得到任何关于如何实现这样一个时钟的代码,API或建议,或者这个时钟可能存在的问题 - Java - Creating an Internal Clock

该帖子谈到了callback,但我不知道它是否是制作钟表的最好和最无问题的方法。

2 个答案:

答案 0 :(得分:1)

显然创建了一个类MyClock.java。在实例化时保存当前的系统时间。实现一个方法long getTime(),该方法从现在开始就会有所不同,并且会在实例化时节省时间。然后在给定的miliiseconds(乘以4)上应用delatation ...休息是你的。

答案 1 :(得分:1)

一种方法是将您的时间基于系统时钟,例如:

class CustomClock()
{
    private final long offset;

    public CustomClock(){
        offset = System.currentTimeMillis();
    }

    public long getSeconds()
    {
        return ((System.currentTimeMillis() - offset) / 250);
    }

    /* ... */
}

然后你的代码看起来像

CustomClock clock = new CustomClock();
clock.getSeconds();    // Returns the number of "seconds" since you created 
                       //  the CustomClock object.