在将毫秒格式化为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脚本:
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");方法:
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
谢谢
发布于 2011-07-01 04:07:47
执行时间是off的,因为Date构造函数需要很长的时间来指定自1970-01-01以来的毫秒数。
发布于 2011-07-01 04:09:31
因为您将时差转换为日期。具体来说,这就是它所发生的事情:
,
不幸的是,您可以通过手动转换时间来修复它。
https://stackoverflow.com/questions/6540380
复制相似问题