如何获取自上次分割以来的最后时间间隔?

Ela*_*nda 6 java time logging split stopwatch

我想从程序开始时运行秒表

并记录一些间隔的时间分割。

我应该选择哪个秒表?

import com.google.common.base.Stopwatch;

org.apache.commons.lang.time.StopWatch
Run Code Online (Sandbox Code Playgroud)

例如:

Start -----> split 1 (1:00 min from split 0) ----> split 2 (0:30 from split 1) -->  split 3 (0:35 from split 2)
Run Code Online (Sandbox Code Playgroud)

并不是

Start -----> split 1 (1:00 min from start) ----> split 2 (1:30 from from start) ----> split 3 (2:05 from from start) 
Run Code Online (Sandbox Code Playgroud)

还有比这更优雅的方法吗?

stopWatch.split();
stopWatch.getSplitTime() - lastSpiltTime;
last splitTime = stopWatch.getSplitTime();
Run Code Online (Sandbox Code Playgroud)

Dan*_*rey 3

不幸的是,这是唯一的方法。我有同样的需求,但 Apache StopWatch 对此没有本机支持。

我用稍微不同的方式做了:

private void lapWatchAndLog( StopWatch watch, String messageForLap ) {

    watch.stop();
    LOGGER.info( String.format( "Time: [%s] %s", watch.getTime(), messageForLap ) );
    watch.reset();
    watch.start();
}
Run Code Online (Sandbox Code Playgroud)