Java-将纳秒转换为HH/MM/SS

Java-将纳秒转换为HH/MM/SS,java,time,nanotime,Java,Time,Nanotime,当在我的Windows计算机上于上午11:35运行时,打印26。一天不可能有26个小时,即使有,也不可能接近预期的结果11。为什么这样不行?(我也不想使用任何时间日期库,我知道有更简单的方法) 希望这一切格式正确,因为我在我的手机上。谢谢大家 从中,您可以阅读以下内容: 此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关。返回的值表示从某个固定但任意的时间开始的纳秒(可能在将来,因此值可能是负数)。该方法提供纳秒精度,但不一定是纳秒精度。无法保证值的更改频率。由于数字溢出,连续调用

当在我的Windows计算机上于上午11:35运行时,打印
26
。一天不可能有26个小时,即使有,也不可能接近预期的结果
11
。为什么这样不行?(我也不想使用任何时间日期库,我知道有更简单的方法)

希望这一切格式正确,因为我在我的手机上。谢谢大家

从中,您可以阅读以下内容:


此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关。返回的值表示从某个固定但任意的时间开始的纳秒(可能在将来,因此值可能是负数)。该方法提供纳秒精度,但不一定是纳秒精度。无法保证值的更改频率。由于数字溢出,连续调用的差异超过大约292年(263纳秒)将无法准确计算经过的时间

因此,您不应使用此方法。

从中,您可以阅读以下内容:


此方法只能用于测量经过的时间,与系统或挂钟时间的任何其他概念无关。返回的值表示从某个固定但任意的时间开始的纳秒(可能在将来,因此值可能是负数)。该方法提供纳秒精度,但不一定是纳秒精度。无法保证值的更改频率。由于数字溢出,连续调用的差异超过大约292年(263纳秒)将无法准确计算经过的时间


所以你不应该使用这种方法。

你的计算不够深入
days=hours/24
?“此方法只能用于测量经过的时间,与任何其他系统或挂钟时间概念无关。返回的值表示自某个固定但任意的起始时间(可能在将来,因此值可能为负值)起的纳秒数。在Java虚拟机实例中,此方法的所有调用都使用相同的原点;其他虚拟机实例可能使用不同的原点。”您的计算不够深入
days=hours/24
?“此方法只能用于测量经过的时间,与任何其他系统或挂钟时间概念无关。返回的值表示自某个固定但任意的起始时间(可能在将来,因此值可能为负值)起的纳秒数。在Java虚拟机实例中,此方法的所有调用都使用相同的原点;其他虚拟机实例可能使用不同的原点。“哦,好的,谢谢。所以我在寻找打印时间戳的准确性和速度,所以我认为使用时间日期对象是个坏主意。你有什么建议吗?关于System.currentTimeMillis()?System.currentTimeMillis()是这样工作的,但是NanoTime()不是这样的?也许可以在你的原始问题中更详细地描述你的具体要求-你所说的“准确度和速度”是什么意思?如果速度真的那么重要,Java可能不是你理想的工具。如果您正在谈论某种web应用程序,希望它尽可能快,那么一个合适的日期/日历/即时/时间戳对象不会慢到足以产生明显的差异。@GianniB。谢谢我已经输入了
LocalDateTime
,但是你是对的,
LocalTime
更适合这个。谢谢你的帮助!哦,好的,谢谢你。所以我在寻找打印时间戳的准确性和速度,所以我认为使用时间日期对象是个坏主意。你有什么建议吗?关于System.currentTimeMillis()?System.currentTimeMillis()是这样工作的,但是NanoTime()不是这样的?也许可以在你的原始问题中更详细地描述你的具体要求-你所说的“准确度和速度”是什么意思?如果速度真的那么重要,Java可能不是你理想的工具。如果您正在谈论某种web应用程序,希望它尽可能快,那么一个合适的日期/日历/即时/时间戳对象不会慢到足以产生明显的差异。@GianniB。谢谢我已经输入了
LocalDateTime
,但是你是对的,
LocalTime
更适合这个。谢谢你的帮助!
  long nanoseconds = System.nanoTime();
  long microseconds = nanoseconds / 1000;
  long miliseconds = microseconds / 1000;
  long seconds = miliseconds / 1000;
  long minutes = seconds / 60;
  long hours = minutes / 60;

  System.out.println (hours);