当前位置: 首页 > 知识库问答 >
问题:

如何获得毫秒的LocalTime变量?[副本]

濮阳浩穰
2023-03-14

执行的代码段:

    String lapTime = "27:10.190";
    int minutes = Integer.parseInt(lapTime.substring(0, lapTime.indexOf(":")));
    int seconds = Integer.parseInt(lapTime.substring(lapTime.indexOf(":")+1, lapTime.indexOf(".")));
    int milliseconds = Integer.parseInt(lapTime.substring(lapTime.indexOf(".")+1));
    LocalTime localTime = LocalTime.of(0, minutes, seconds, milliseconds);

如何获得localTime localTime=localTime.of(0,minute,seconds,milliseconds);的毫秒数?

共有1个答案

傅兴平
2023-03-14

TL;DR使用duration,而不是localtime。参见答案的结尾。

请注意,localtime.of()的第四个参数是纳秒,而不是毫秒,如果您打印localtime,您会看到这一点:

System.out.println(localTime); // prints: 00:27:10.000000190

因此,您需要将代码更改为:

LocalTime localTime = LocalTime.of(0, minutes, seconds, milliseconds * 1000000);
System.out.println(localTime); // prints: 00:27:10.190
localTime.getLong(ChronoField.MILLI_OF_SECOND) // returns 190
localTime.getLong(ChronoField.MILLI_OF_DAY) // returns 1630190

正确的工具是duration类,例如。

Duration duration = Duration.ofMinutes(minutes).plusSeconds(seconds).plusMillis(milliseconds);

或:

Duration duration = Duration.ofSeconds(seconds, milliseconds * 1000000).plusMinutes(minutes);

然后可以通过调用tomillis(),直接获得毫秒数:

duration.toMillis(); // returns 1630190
String lapTime = "127:10.190";
. . .
duration.toMillis(); // returns 7630190
duration.toMillisPart(); // returns 190
 类似资料:
  • 问题内容: 我的程序有问题。我想在1秒内获得等于1000的实时毫秒数。这是我的代码: 还有什么其他方法可以获取毫秒而不是声明整数并递增呢? 问题答案: 您将希望摆脱它,而使用Swing计时器代替它,因为那是Timer的用途-在Swing GUI中重复进行调用, 而 不必求助于破坏线程的构造。 您将需要给您的计时器一个合理的延迟时间。0?常识告诉您不要使用此功能。12、15-更好。 为了使Swing

  • 问题内容: 我认为我在正确的PHP和AJAX文件之间传递变量的方式不正确。 我正在通过触发PHP文件中的第二个条件来调试它。 目前,对于“ signup_process.php AJAX 我知道第二个条件正在被触发,因为我在其中放置了一个标头重定向,仅用于测试,它工作正常。 问题答案: 在将数据从php返回到ajax时很好用 json 。 现在,如果要将json数据返回给ajax,则需要将 返回数

  • 如何在ios上获得半毫秒的振动?类似于在手机键盘上打字时获得的振动。我似乎用这个,但它不会在ios上复制相同的振动 这是下面的代码

  • 问题内容: 我想知道如果有一种方法,因为1970年1月1日(时期),以获得当前毫秒使用新的,或Java的8类。 已知的方法如下: 要么 问题答案: 我不能完全确定“当前毫秒”的含义,但我假设这是自“纪元”(即UTC 1970年1月1日午夜)以来的毫秒数。 如果你想找到,因为时代的毫秒数 眼下, 然后用作为nubian菜鸟指出。如果是这样,则没有理由使用任何新的java.time API来执行此操作

  • 问题内容: 在我的项目中,我在sqllite数据库中保存毫秒,默认情况下,我保存 在数据库中,但是用户可以从日期选择器中选择以前的日期吗?但是,当用户从日期选择器中选择前一个或以后的几天时,我可以保存什么呢?如何获得长(毫秒)格式的那一天? 问题答案: 创建一个实例并设置所需的日期。然后致电。有关更多信息,请参见前面的SO问题的答案。 编辑 要设置日历日期,您可以使用以下方法: 有关更多信息,请参