当前位置: 首页 > 面试题库 >

如何使用TimeUnit枚举将纳秒转换为秒?

融建树
2023-03-14
问题内容

如何将值从纳秒转换为秒?

这是代码段:

import java.io.*;
import java.util.concurrent.*; 
..

class Stamper {

public static void main (String[] args) { 
long start = System.nanoTime(); 
//some try with nested loops 
long end = System.nanoTime(); 
long elapsedTime = end - start;

System.out.println("elapsed: " + elapsedTime + "nano seconds\n");

//convert to seconds 
TimeUnit seconds = new TimeUnit(); 
System.out.println("which is " + seconds.toSeconds(elapsedTime) + " seconds"); 
}}

错误是

Stamper.java:16:  enum types may not be instantiated.

这是什么意思?


问题答案:

好吧,您可以除以1,000,000,000:

long elapsedTime = end - start;
double seconds = (double)elapsedTime / 1_000_000_000.0;

如果使用TimeUnit转换,结果将很长,因此您将失去小数精度,但保持整数精度。



 类似资料:
  • 问题内容: 我正在使用TimeStamp类将秒转换为Day,Hours,Minutes,Seconds。我用下面的代码 但是我没有得到正确的结果。例如,当我调用此方法时,它给我的结果是而不是。 我的逻辑有什么问题? 请帮我。 问题答案: 应该像 编辑 说明: 日计算是正确的,不需要解释。 TimeUnit.SECONDS.toHours(seconds)将使您直接从秒转换为小时,而无需考虑已经计算

  • 问题内容: 我有一个返回int类型的函数。但是,我只有TAX枚举的值。 如何将TAX枚举值转换为整数? 问题答案: 您需要以某种方式使枚举公开,例如 (顺便说一句,我将名称更改为更常规和易读。) 这是 假设 您要在构造函数中分配值。如果这不是您想要的,则需要向我们提供更多信息。

  • 问题内容: 我有一个第三方图书馆给我一个图书馆。我想像Java 8那样懒惰地使用该枚举,并调用诸如此类的东西。 有没有现成的图书馆?我已经在引用Guava和Apache Commons,所以如果其中任何一个都有理想的解决方案。 另外,在保留所有内容的懒惰性质的同时将a 变成最佳/最简单的方法是什么? 问题答案: 这个答案已经提供了一个解决方案,可以解决以下问题: 应当强调的是,由此而来 的 懒任何

  • 问题内容: 我有一些Java代码,我想将其翻译为C#。srcParams是一个哈希表。 这是Java代码: 这是我在C#中的尝试 你能告诉我是否正确吗? 问题答案: 您所拥有的几乎可以了,只需重命名变量并添加的使用即可:

  • 我有一个第三方库,它给我一个。我希望将该枚举作为Java8来使用,在其上调用诸如、和之类的东西。 是否有一个现有的库中包含此内容?我已经引用了Guava和Apache Commons,所以如果其中任何一个都有理想的解决方案。 或者,将转换为同时保留所有内容的惰性的最佳/最简单的方法是什么?

  • 问题内容: 给定以下枚举,将Int强制转换为Java中的枚举的正确方法是什么? 问题答案: 尝试在必须为or的地方,即该枚举的有效序数。 请注意,在Java中,枚举实际上是类(因此,枚举值是对象),因此您不能将an 甚至转换为枚举。