java获取此刻时间执行时间时间配对(Java中获取执行时间的几种方式)
Java是一种用于编写跨平台应用流程的高档编程语言。在开发Java流程时,获取当前时间以及计算执行时间是常常见到的需求。本文将介绍Java中获取当前时间的方式方法以及计算流程执行时间的几种方式。
要获取当前时间,Java提供了多个办法。最常用的是使用System。currentTimeMillis()方法或newDate()构造函数。这两种方法返回的是代表当前时间的毫秒数。
以下是使用System。currentTimeMillis()获取当前时间的示例代码:
longcurrentTimeMillis=System。currentTimeMillis();
也应该使用newDate()构造函数来获取当前时间。示例代码如下:
DatecurrentTime=newDate();
上述代码中,currentTime对象将蕴含当前时间。
接着下面,我们将介绍几种计算流程执行时间的方式。在Java中,应该使用System。nanoTime()方法或System。currentTimeMillis()方法来计算执行时间。
System。nanoTime()方法返回以纳秒为单位的当前时间,适合使用于计算非常短的流程执行时间。示例代码如下:
longstartTime=System。nanoTime();
//执行代码。。。
longendTime=System。nanoTime();
longelapsedTime=endTime-startTime;
上述代码中,通过startTime和endTime变量获取流程的开始和终结时间,紧接着计算它们之间的差值以得到执行时间。
假如需要计算较长久的执行时间,应该使用System。currentTimeMillis()方法。示例代码如下:
longstartTimeMillis=System。currentTimeMillis();
//执行代码。。。
longendTimeMillis=System。currentTimeMillis();
longelapsedTimeMillis=endTimeMillis-startTimeMillis;
与System。nanoTime()方法不同,System。currentTimeMillis()方法返回以毫秒为单位的当前时间。
除了以上方法外,还不错使用java。util。concurrent。TimeUnit类中的convert方法来将纳秒转换为其他单位,例如秒、毫秒等。
在本文中,我们介绍了Java中获取当前时间的几种方法,以及计算流程执行时间的常用方式。不管是获取当前时间还是计算执行时间,Java提供了多种选择,开发人员可以依据本人的需求选择合适的方法。
来源头条作者:sherman168应用场景有些时候,大家需要查看某一段代码的性能怎样,最为简单容易的方式,可Yi经过计算该段代码执行的耗时,来进行简单容易的判断,故此我们在java中可Yi经过以下几种方式获取流程的执行耗时。代码示例通过System。currentTimeMillis()方法可以获取当前时间的毫秒数据,那不如就能在开始执行的地方记录一个当前时间的毫秒数值,流程执行结束的时刻获取一个当前时间的毫秒数值,取两个时间的差值即为流程的耗时,代码如下:/**
*通过System。currentTimeMillis()获取执行的时长
*@throwsInterruptedException
*/
publicvoidgetExecuteTimeByCurrentTimeMillis()throwsInterruptedException{
longstart=System。currentTimeMillis();
Thread。sleep(1000);
longend=System。currentTimeMillis();
System。out。println(String。format("TotalTime:%dms",end-start));
}通过System。nanoTime()方法,该方法和System。currentTimeMillis()类似,只是返回的是纳秒。/**
*通过System。nanoTime()获取执行时长,该方法返回的单位是纳秒
*
*@throwsInterruptedException
*/
publicvoidgetExecuteTimeByNanoTime()throwsInterruptedException{
longstart=System。nanoTime();
Thread。sleep(1000);
longend=System。nanoTime();
System。out。println(String。format("TotalTime:%dms",(end-start)/1000000));
}通过java。util。Date初始化一个时间类型的对象,在流程的开始地方用于预示开始时间,流程终结时再初始化一个时间对象,紧接着计算两个时间的差值,亦即执行的时长。/**
*通过java。util。Date初始化开始和终结时间,计算两个时间的差值总结出执行时间
*
*@throwsInterruptedException
*/
publicvoidgetExecuteTimeByDate()throwsInterruptedException{
DatestartDate=newDate();
Thread。sleep(1000);
DateendDate=newDate();
System。out。println(String。format("Totaltime:%dms",endDate。getTime()-startDate。getTime()));
}通过commons。lang3中的StopWatch,需要引入如下的依靠
org。apache。commons
commons-lang3
3、12、0
/**
*通过引入apache的commons。lang3包,使用StopWatch获取执行时间
*
*@throwsInterruptedException
*/
publicvoidgetExecuteByStopWatch1()throwsInterruptedException{
StopWatchstopWatch=newStopWatch();
stopWatch。start();
Thread。sleep(1000);
stopWatch。stop();
System。out。println(String。format("Totaltime:%dms",stopWatch。getTime()));
}通过com。google。guava中Stopwatch,需要引入如下的依靠
com。google。guava
guava
31、1-jre
bundle-->
/**
*引入com。google。guava中的Guava包,使用Stopwatch获取执行时间
*@throwsInterruptedException
*/
publicvoidgetExecuteByStopWatch2()throwsInterruptedException{
Stopwatchstopwatch=Stopwatch。createStarted();
Thread。sleep(1000);
stopwatch。stop();
System。out。println(String。format("Totaltime:%dms",stopwatch。elapsed(TimeUnit。MILLISECONDS)));
}通过spring中的StopWatch获取执行时间,我这里是使用的springboot搭建的控制台流程/**
*通过spring中的StopWatch获取执行时间
*@throwsInterruptedException
*/
publicvoidgetExecuteByStopWatch3()throwsInterruptedException{
//TODOAuto-generatedmethodstub
org。springframework。util。StopWatchstopWatch=neworg。springframework。util。StopWatch();
stopWatch。start();
Thread。sleep(1000);
stopWatch。stop();
System。out。println(String。format("Totaltime:%dms",stopWatch。getTotalTimeMillis()));
}通过以上6种方式皆可以获取到流程的执行耗时,不晓得大伙是否还有其他别的方式呢?欢迎在留言区讨论。