如何计算Java中两个事件之间的时差?

时间:2010-12-25 23:51:52

标签: java datetime

我想计算时间瞬间之间的时差。例如,在程序执行期间,我设置变量的值,一段时间后我再次更改它。最近的价值变化与之前价值之间的时差是多少?

4 个答案:

答案 0 :(得分:10)

您可以使用System.currentTimeMillis()以1毫秒的分辨率保存当前时间。 只需在第一个事件发生时保存时间(最好使用long var来保存该值) 第二次事件发生时差值除以1000将给出时间差(秒)。

答案 1 :(得分:3)

你可以做一些简单的事情:

long begin = System.currentTimeMillis();
doWork();
long end = System.currentTimeMillis();

long dt = end - begin;

更成熟的方式(特别是,如果你需要在很多地方做很多次)是使用库。看看perf4j。您可以在方法上添加@Profiled注释,它会自动生成一些统计信息并将其写入日志文件。

答案 2 :(得分:2)

当您需要从System.nanoTime()检索时,存储当前时间,并减去这些值中的任意两个以获得纳秒的差异。

(首先按整数除以百万,然后浮动一千,你得到一个时间,在几秒钟内有三个小数位,打印得很好。)

答案 3 :(得分:1)

只需从系统中获取并存储在长数据中。你可以对那些多头做数学计算,以找出时差。

long start = System.currentTimeMillis();

//do stuff
//do more stuff

long end = System.currentTimeMillis();