计算时间差(天,小时,分钟):博客
Java 实例 时间的处理demo:博客
StopWatch
主要方法: 方法start():开始计时
stop():停止计时
suspend():暂停秒表
resume():恢复秒表
reset():重置秒表
split():设定split点
getSplitTime():获取时间,时间为从计时起点到最新设置的split点之间的时长
getTime():显示当前秒表时间,可以通过指定TimeUnit来指定返回的时间单位
import cn.hutool.core.date.StopWatch;
maven
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.3.2</version>
</dependency>
package com.example.democrud.democurd.controller;
//import org.apache.commons.lang.time.StopWatch;
import cn.hutool.core.date.StopWatch;
public class demoTest {
public static void main(String[] args) throws InterruptedException {
currentTimeMillis();
// StopWatch();//多线程适用任务
StopWatch01();//多线程适用任务 多线程执行demo
}
private static void StopWatch01() throws InterruptedException {
// 创建一个 StopWatch 实例
StopWatch sw = new StopWatch("实例");
// 开始计时
sw.start("任务1");
Thread.sleep(1000);
// 停止计时
sw.stop();
System.out.printf("任务1耗时:%d%s.\n", sw.getLastTaskTimeMillis(), "ms");
sw.start("任务2");
Thread.sleep(1100);
sw.stop();
System.out.printf("任务2耗时:%d%s.\n", sw.getLastTaskTimeMillis(), "ms");
System.out.printf("任务数量:%s,总耗时:%ss.\n", sw.getTaskCount(), sw.getTotalTimeSeconds());
}
/* private static void StopWatch() {
try{
StopWatch stop=new StopWatch();
//start
stop.start();//开始计时
Thread.sleep(1000);
stop.split();//设置split点
System.out.println("1==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
Thread.sleep(500);
stop.split();//设置split点
System.out.println("2==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
Thread.sleep(1000);
stop.split();//设置split点
System.out.println("3==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
Thread.sleep(1000);
stop.split();//设置split点
System.out.println("4==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
System.out.println("5==>时间为"+stop.getTime()+"毫秒");//getTime()统计从start到现在的计时
//stop
stop.stop();//停止计时
Thread.sleep(1000);
System.out.println("6==>时间为"+stop.getTime()+"毫秒");//getTime()统计从start到现在的计时
} catch (InterruptedException e) {
e.printStackTrace();
}
}*/
private static void currentTimeMillis() {
long startTime = System.currentTimeMillis();
try {
Thread.sleep(10000L);
} catch (InterruptedException e) {
e.printStackTrace();
}
long endTime = System.currentTimeMillis();
System.out.println("Main 运行时间 :" + (endTime-startTime)/1000+"秒");
}
}
执行结果是:
Main 运行时间 :10秒
任务1耗时:999ms.
任务2耗时:1099ms.
任务数量:2,总耗时:2.098904701s.
Process finished with exit code 0
还有一个是引用的包不同调用的方法;
import org.apache.commons.lang.time.StopWatch;
package com.example.democrud.democurd.controller;
import org.apache.commons.lang.time.StopWatch;
//import cn.hutool.core.date.StopWatch;
public class demoTest {
public static void main(String[] args) throws InterruptedException {
// currentTimeMillis();
StopWatch();//多线程适用任务
// StopWatch01();//多线程适用任务 多线程执行demo
}
private static void StopWatch() {
try{
StopWatch stop=new StopWatch();
//start
stop.start();//开始计时
Thread.sleep(1000);
stop.split();//设置split点
System.out.println("1==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
Thread.sleep(500);
stop.split();//设置split点
System.out.println("2==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
Thread.sleep(1000);
stop.split();//设置split点
System.out.println("3==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
Thread.sleep(1000);
stop.split();//设置split点
System.out.println("4==>时间为"+stop.getSplitTime()+"毫秒");//getSplitTime()获取从start 到 最后一次split的时间
System.out.println("5==>时间为"+stop.getTime()+"毫秒");//getTime()统计从start到现在的计时
//stop
stop.stop();//停止计时
Thread.sleep(1000);
System.out.println("6==>时间为"+stop.getTime()+"毫秒");//getTime()统计从start到现在的计时
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
执行结果是
1==>时间为1001毫秒
2==>时间为1502毫秒
3==>时间为2502毫秒
4==>时间为3503毫秒
5==>时间为3503毫秒
6==>时间为3503毫秒