首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >格式化毫秒以简化格式化

格式化毫秒以简化格式化
EN

Stack Overflow用户
提问于 2011-07-01 03:56:37
回答 2查看 23.4K关注 0票数 5

在将毫秒格式化为SimpleDate格式时,我遇到了一个奇怪的结果:

输出为:

代码语言:javascript
复制
    Start date time: 11/06/30 09:45:48:970
    End date time: 11/06/30 09:45:52:831
    Execution time: 01:00:03:861

脚本:

代码语言:javascript
复制
    long dateTimeStart = System.currentTimeMillis();    
    // some script execution here
    long dateTimeEnd = System.currentTimeMillis();

    "Start date time: " + GlobalUtilities.getDate(dateTimeStart, "yy/MM/dd hh:mm:ss:SSS"); 
    "End date time: " + GlobalUtilities.getDate(dateTimeEnd, "yy/MM/dd hh:mm:ss:SSS"); 
    "Execution time: " + GlobalUtilities.getDate((dateTimeEnd - dateTimeStart), "hh:mm:ss:SSS");

方法:

代码语言:javascript
复制
    public static String getDate(long milliseconds, String format)
    {
        SimpleDateFormat sdf = new SimpleDateFormat(format);
        return sdf.format(milliseconds);
    }

你知道为什么执行时间值这么小吗?应该是00:00:03:861,而不是01:00:03:861

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-01 04:07:47

执行时间是off的,因为Date构造函数需要很长的时间来指定自1970-01-01以来的毫秒数。

票数 1
EN

Stack Overflow用户

发布于 2011-07-01 04:09:31

因为您将时差转换为日期。具体来说,这就是它所发生的事情:

  1. SimpleDateFormat.format(long毫秒)计算日期: Unix出生时间+ milliseconds.
  2. This时间也根据与格林尼治标准时间的时间差进行调整。

  1. ,有了这两个信息,你就会得到奇怪的结果。要验证上面的信息,您可以在日期上添加日、月和年。

不幸的是,您可以通过手动转换时间来修复它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6540380

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档