currentTimeMillis与StopWatch 的时间差工具:
计算时间差(天,小时,分钟):博客
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毫秒
calendar.getTimeInMillis()
查看执行的的时间
long ss1 =Calendar.getInstance().getTimeInMillis(); Map<String, Object> resultMap = queryIdxInfo(id, sheetId); long ss2 = Calendar.getInstance().getTimeInMillis(); long costs1 = ss2-ss1; Date date = new Date(costs1 .getTimeInMillis()); java.text.SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd"); System.out.println(format.format(date)); #时间戳和日期的格式化互转参考: https://www.cnblogs.com/yanwu0527/p/9039947.html