将毫秒格式设置为 simpledateformat

2023-12-30

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

输出是:

    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

Script:

    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");

Method:

    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

Thanks


因为您将时差转换为日期。 详细来说,这正是发生的情况:

  1. SimpleDateFormat.format(long milliseconds) 计算日期:Unix 出生时间 + 毫秒。
  2. 这个时间也根据与GMT的时差进行调整。
  3. 有了这两个信息,你就会得到奇怪的结果。要验证上述信息,您可以在日期中添加日、月和年。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将毫秒格式设置为 simpledateformat 的相关文章

随机推荐