有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何获取上次拆分后的最后时间间隔?

我想在节目开始时用秒表

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

我更喜欢哪个秒表

import com.google.common.base.Stopwatch;

org.apache.commons.lang.time.StopWatch

例如:

Start -----> split 1 (1:00 min from split 0) ----> split 2 (0:30 from split 1) -->  split 3 (0:35 from split 2)

而不是

Start -----> split 1 (1:00 min from start) ----> split 2 (0:30 from from start) ----> split 3 (0:35 from from start) 

还有比这更优雅的方式吗

stopWatch.split();
stopWatch.getSplitTime() - lastSpiltTime;
last splitTime = stopWatch.getSplitTime();

共 (2) 个答案

  1. # 1 楼答案

    或者你可以用这个:

    private long stopWatchGap(StopWatch stopWatch) {
        try {
            stopWatch.stop();
            return stopWatch.getTime();
        } finally {
            stopWatch.reset();
            stopWatch.start();
        }
    }
    

    只是为了返回间隙值

  2. # 2 楼答案

    不幸的是,这是唯一的办法。我也有同样的需求,但ApacheStopWatch没有本机支持

    我用了一种稍微不同的方式:

    private void lapWatchAndLog( StopWatch watch, String messageForLap ) {
    
        watch.stop();
        LOGGER.info( String.format( "Time: [%s] %s", watch.getTime(), messageForLap ) );
        watch.reset();
        watch.start();
    }