Google之Stopwatch 计时器
参考
方法
返回值 | 方法 | Desc |
---|---|---|
Stopwatch |
static createStarted() |
使用System.nanoTime()其时间源创建(并启动)新的Stopwatch |
Stopwatch |
static createStarted(Ticker ticker) |
使用指定的时间源创建(并启动)新的Stopwatch |
Stopwatch |
static createUnstarted() |
使用System.nanoTime()作为其时间源创建(但不启动)新的Stopwatch |
Stopwatch |
static createUnstarted(Ticker ticker) |
使用指定的时间源创建(但不启动)新的Stopwatch |
Duration |
elapsed() |
以秒为单位返回此Stopwatch经过时间Duration |
long |
elapsed(TimeUnit desiredUnit) |
用返回此Stopwatch经过时间,以所需的时间单位表示,并且向下取整 |
boolean |
isRunning() |
若 start 方法被调用,stop 方法还没有调用,返回真 |
Stopwatch |
reset() |
把 Stopwatch 经过的时间设置为零,状态设置为停止 |
Stopwatch |
start() |
启动 Stopwatch |
Stopwatch |
stop() |
停止 Stopwatch |
String |
toString() |
返回字符串形式的elapsed time |
TimeUnit
枚举常量 | 描述 |
---|---|
DAYS |
天 |
HOURS |
小时 |
MINUTES |
分钟 |
SECONDS |
秒 |
MILLISECONDS |
毫秒 |
MICROSECONDS |
微秒 |
NANOSECONDS |
纳秒 |
案例
public static void main(String[] args) throws Exception{
// 创建stopwatch并开始计时
Stopwatch stopwatch = Stopwatch.createStarted();
System.out.println("-- 开始计时 --");
Thread.sleep(1950L);
System.out.println(stopwatch);// 1.955 s
// 向下取整 单位:秒
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));// 1
// 停止计时
System.out.println("-- 停止计时 --");
stopwatch.stop();
Thread.sleep(2000L);
System.out.println(stopwatch);// stop()不在计时 1.959 s
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));// 1
// 再次计时
System.out.println("-- 再次计时 --");
stopwatch.start();
Thread.sleep(100L);
System.out.println(stopwatch);// 2.067 s
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));// 2
// 重置并开始
System.out.println("-- 重置并开始 --");
stopwatch.reset().start();
Thread.sleep(1500);
System.out.println(stopwatch);// 1.505 s
System.out.println(stopwatch.elapsed(TimeUnit.SECONDS));// 1
// 检查isRunning
System.out.println("-- 检查isRunning --");
System.out.println(stopwatch.isRunning());// true
// 打印
System.out.println("-- 打印 --");
System.out.println(stopwatch.toString());// 1.506 s
}