什么是java等效的time.clock来自python?

时间:2017-03-15 07:22:30

标签: java python drawing

我正在尝试在java中创建一个键盘,在键入键时播放音频。当键入键时,我想要在键入红色时高度选择键盘区域。但是这不起作用,我相信这是因为刷新率。我假设这是因为当我注释掉处理刷新的代码时它突出显示很好,但声音不能正常工作。 每次按下新键时,如何让键盘刷新并突出显示按下的键?

目前我正在使用,这只是代码的一部分。相关部分。

double KEYBOARD_REFRESH_DELAY = 0.01;
long start = Calendar.getInstance().get(Calendar.MILLISECOND);

if ((Calendar.getInstance().get(Calendar.MILLISECOND) % 1000) - start > KEYBOARD_REFRESH_DELAY) {
    start = Calendar.getInstance().get(Calendar.MILLISECOND);
    drawKeyboard(pressed);
    StdDraw.show(0);

2 个答案:

答案 0 :(得分:1)

使用System.currentTimeMillis()代替Calendar.MILLISECOND。请参阅下文,了解基于Java Docs的差异。

Calendar.MILLISECOND:

  

get和set的字段编号,表示其中的毫秒数   第二。例如,在10:04:15.250 PM,MILLISECOND是250。

System.currentTimeMillis:

  

以毫秒为单位返回当前时间。注意,虽然单位   返回值的时间是毫秒,粒度   值取决于底层操作系统,可能更大。   例如,许多操作系统以数十为单位测量时间   毫秒。有关讨论,请参阅类Date的说明   “计算机时间”和“计算机时间”之间可能出现的轻微差异   协调世界时(UTC)。

答案 1 :(得分:1)

Answer by codenut是正确的。

java.time.clock

Java 9及更高版本在Clock的新实现中包含一个分辨率高达纳秒的选项。

Instant

通过调用Instant进行访问,时间轴上的时刻始终为UTC。

Instant instant = Instant.now() ;
  

instant()。toString():2017-01-23T12:34:56.123456789Z