Java,获取按键的时间长度,currentTimeMillies()始终为24

Java,获取按键的时间长度,currentTimeMillies()始终为24,java,time,keylistener,Java,Time,Keylistener,我正在为一个机器人编写一个代码,当它被击中时,它会回到原来的位置。为此,我记录了按键的时间量 switch (key) { case KeyEvent.VK_UP: // System.out.println("UP pressed"); // state = ""; pressCount += 1; xTimeStart

我正在为一个机器人编写一个代码,当它被击中时,它会回到原来的位置。为此,我记录了按键的时间量

            switch (key) {
            case KeyEvent.VK_UP:
                // System.out.println("UP pressed");
                // state = "";
                pressCount += 1;
                xTimeStart = System.currentTimeMillis();
                myFinch.setWheelVelocities(255, 255);
                myFinch.setLED(0, 0, 255);
                // tempDistance = 1;
                break;
            }
也就是说,当按键按下时,xTimeStart会记录第一次按下按钮的时间

        switch (key) {
        case KeyEvent.VK_UP:
            // System.out.println("UP released");
            xTimeEnd = System.currentTimeMillis();
            System.out.println(xTimeEnd-xTimeStart);
            pressCount = 0;
            // tempDistance = 1;
            break;
       }
如您所见,我检索按钮释放的时间并打印出两者之间的差异。如果不除以1000或转换为秒,结果总是在23-25之间的24左右


非常感谢您的帮助,提前感谢:D.

为什么不使用像Guava's Stopwatch这样的实用程序类?为了获得更高的精度,您应该以代码为基础。即使使用秒表/纳米时间,分辨率也受到事件侦听器的限制,而事件侦听器受操作系统UI消息泵的限制。您可以得到更精确的值,但不能得到更精确的值。代码的两部分,大小写值都是KeyEvent.VK_UP?是的。一个用于按下向上按钮时,另一个用于松开按钮时