【问题标题】:Milliseconds and nanoseconds in time format时间格式的毫秒和纳秒
【发布时间】:2012-11-28 14:36:50
【问题描述】:

这是我的代码:

long currentTime = System.currentTimeMillis();
Date date = new Date(currentTime); // if you really have long
String result = new SimpleDateFormat("HH:mm:ss").format(date.getTime());

是否可以在日期格式中添加毫秒和纳秒?

【问题讨论】:

  • 嗯……文档怎么说?
  • 请学会使用Javadoc
  • 还要注意微秒的存在。一毫秒有 1 000 000 纳秒。
  • 另请注意,系统时钟很少能在纳秒范围内测量。甚至毫秒也不准确。
  • java.util.Date 在内部使用以 long 类型存储的millis。因此,对于处理Date 的事情,恐怕没有比毫秒更小的分数了。

标签: java


【解决方案1】:

您可以通过在末尾添加SSS来添加毫秒,例如格式为HH:mm:ss.SSS

SimpleDateFormat 中没有提到纳秒。通常System.nanoTime()用于性能调试,而不是用于显示目的。

【讨论】:

    【解决方案2】:
    String result = new SimpleDateFormat("HH:mm:ss:SSS").format(date);
    
    "HH:mm:ss:SSS" //SSS stands for milliseconds
    

    查看SimpleDateFormat API了解更多信息

    【讨论】:

    • 您可能想要 SSS,而不是 SS。这些是毫秒,而不是厘秒。
    • @Dan: SS 也可以,但 10 到 99 之间的毫秒不会有前导 0。
    • @GriffeyDog 嗯,是的,我认为date 是日历参考:P
    【解决方案3】:
    String timeStamp = new SimpleDateFormat("dd:MM:yyyy_HH:mm:ss:SSS").format(Calendar.getInstance().getTime());
    timeStamp = timeStamp + ":" + System.nanoTime();
    

    这给了我输出,

    24:03:2014_18:24:09:890:2018826751601473
    

    【讨论】:

      猜你喜欢
      • 2019-08-01
      • 2011-05-17
      • 2022-06-13
      • 2023-03-17
      • 2020-09-04
      • 1970-01-01
      • 2018-12-07
      • 2018-11-08
      相关资源
      最近更新 更多