将毫秒格式化为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
由于
答案 0 :(得分:3)
因为您将时差转换为日期。 详细而言,这正是它发生的事情:
不幸的是,您可以通过手动转换时间来修复它。
答案 1 :(得分:1)
执行时间已关闭,因为Date构造函数使用long指定自1970-01-01以来的毫秒数。