首页 > 生辰八字

java获取此刻时间执行时间时间配对(Java中获取执行时间的几种方式)

执行时间 生辰八字 03-28

Java是一种用于编写跨平台应用流程的高档编程语言。在开发Java流程时,获取当前时间以及计算执行时间是常常见到的需求。本文将介绍Java中获取当前时间的方式方法以及计算流程执行时间的几种方式。I4Z鬼金羊

要获取当前时间,Java提供了多个办法。最常用的是使用System。currentTimeMillis()方法或newDate()构造函数。这两种方法返回的是代表当前时间的毫秒数。I4Z鬼金羊

以下是使用System。currentTimeMillis()获取当前时间的示例代码:I4Z鬼金羊

longcurrentTimeMillis=System。currentTimeMillis();I4Z鬼金羊

也应该使用newDate()构造函数来获取当前时间。示例代码如下:I4Z鬼金羊

DatecurrentTime=newDate();I4Z鬼金羊

上述代码中,currentTime对象将蕴含当前时间。I4Z鬼金羊

接着下面,我们将介绍几种计算流程执行时间的方式。在Java中,应该使用System。nanoTime()方法或System。currentTimeMillis()方法来计算执行时间。I4Z鬼金羊

System。nanoTime()方法返回以纳秒为单位的当前时间,适合使用于计算非常短的流程执行时间。示例代码如下:I4Z鬼金羊

longstartTime=System。nanoTime();I4Z鬼金羊

//执行代码。。。I4Z鬼金羊

longendTime=System。nanoTime();I4Z鬼金羊

longelapsedTime=endTime-startTime;I4Z鬼金羊

上述代码中,通过startTime和endTime变量获取流程的开始和终结时间,紧接着计算它们之间的差值以得到执行时间。I4Z鬼金羊

假如需要计算较长久的执行时间,应该使用System。currentTimeMillis()方法。示例代码如下:I4Z鬼金羊

longstartTimeMillis=System。currentTimeMillis();I4Z鬼金羊

//执行代码。。。I4Z鬼金羊

longendTimeMillis=System。currentTimeMillis();I4Z鬼金羊

longelapsedTimeMillis=endTimeMillis-startTimeMillis;I4Z鬼金羊

与System。nanoTime()方法不同,System。currentTimeMillis()方法返回以毫秒为单位的当前时间。I4Z鬼金羊

除了以上方法外,还不错使用java。util。concurrent。TimeUnit类中的convert方法来将纳秒转换为其他单位,例如秒、毫秒等。I4Z鬼金羊

在本文中,我们介绍了Java中获取当前时间的几种方法,以及计算流程执行时间的常用方式。不管是获取当前时间还是计算执行时间,Java提供了多种选择,开发人员可以依据本人的需求选择合适的方法。I4Z鬼金羊

来源头条作者:sherman168应用场景有些时候,大家需要查看某一段代码的性能怎样,最为简单容易的方式,可Yi经过计算该段代码执行的耗时,来进行简单容易的判断,故此我们在java中可Yi经过以下几种方式获取流程的执行耗时。代码示例通过System。currentTimeMillis()方法可以获取当前时间的毫秒数据,那不如就能在开始执行的地方记录一个当前时间的毫秒数值,流程执行结束的时刻获取一个当前时间的毫秒数值,取两个时间的差值即为流程的耗时,代码如下:/**I4Z鬼金羊

*通过System。currentTimeMillis()获取执行的时长I4Z鬼金羊

*@throwsInterruptedExceptionI4Z鬼金羊

*/I4Z鬼金羊

publicvoidgetExecuteTimeByCurrentTimeMillis()throwsInterruptedException{I4Z鬼金羊

longstart=System。currentTimeMillis();I4Z鬼金羊

Thread。sleep(1000);I4Z鬼金羊

longend=System。currentTimeMillis();I4Z鬼金羊

System。out。println(String。format("TotalTime:%dms",end-start));I4Z鬼金羊

}通过System。nanoTime()方法,该方法和System。currentTimeMillis()类似,只是返回的是纳秒。/**I4Z鬼金羊

*通过System。nanoTime()获取执行时长,该方法返回的单位是纳秒I4Z鬼金羊

*I4Z鬼金羊

*@throwsInterruptedExceptionI4Z鬼金羊

*/I4Z鬼金羊

publicvoidgetExecuteTimeByNanoTime()throwsInterruptedException{I4Z鬼金羊

longstart=System。nanoTime();I4Z鬼金羊

Thread。sleep(1000);I4Z鬼金羊

longend=System。nanoTime();I4Z鬼金羊

System。out。println(String。format("TotalTime:%dms",(end-start)/1000000));I4Z鬼金羊

}通过java。util。Date初始化一个时间类型的对象,在流程的开始地方用于预示开始时间,流程终结时再初始化一个时间对象,紧接着计算两个时间的差值,亦即执行的时长。/**I4Z鬼金羊

*通过java。util。Date初始化开始和终结时间,计算两个时间的差值总结出执行时间I4Z鬼金羊

*I4Z鬼金羊

*@throwsInterruptedExceptionI4Z鬼金羊

*/I4Z鬼金羊

publicvoidgetExecuteTimeByDate()throwsInterruptedException{I4Z鬼金羊

DatestartDate=newDate();I4Z鬼金羊

Thread。sleep(1000);I4Z鬼金羊

DateendDate=newDate();I4Z鬼金羊

System。out。println(String。format("Totaltime:%dms",endDate。getTime()-startDate。getTime()));I4Z鬼金羊

}通过commons。lang3中的StopWatch,需要引入如下的依靠I4Z鬼金羊

org。apache。commonsI4Z鬼金羊

commons-lang3I4Z鬼金羊

3、12、0I4Z鬼金羊

/**I4Z鬼金羊

*通过引入apache的commons。lang3包,使用StopWatch获取执行时间I4Z鬼金羊

*I4Z鬼金羊

*@throwsInterruptedExceptionI4Z鬼金羊

*/I4Z鬼金羊

publicvoidgetExecuteByStopWatch1()throwsInterruptedException{I4Z鬼金羊

StopWatchstopWatch=newStopWatch();I4Z鬼金羊

stopWatch。start();I4Z鬼金羊

Thread。sleep(1000);I4Z鬼金羊

stopWatch。stop();I4Z鬼金羊

System。out。println(String。format("Totaltime:%dms",stopWatch。getTime()));I4Z鬼金羊

}通过com。google。guava中Stopwatch,需要引入如下的依靠I4Z鬼金羊

com。google。guavaI4Z鬼金羊

guavaI4Z鬼金羊

31、1-jreI4Z鬼金羊

bundle-->I4Z鬼金羊

/**I4Z鬼金羊

*引入com。google。guava中的Guava包,使用Stopwatch获取执行时间I4Z鬼金羊

*@throwsInterruptedExceptionI4Z鬼金羊

*/I4Z鬼金羊

publicvoidgetExecuteByStopWatch2()throwsInterruptedException{I4Z鬼金羊

Stopwatchstopwatch=Stopwatch。createStarted();I4Z鬼金羊

Thread。sleep(1000);I4Z鬼金羊

stopwatch。stop();I4Z鬼金羊

System。out。println(String。format("Totaltime:%dms",stopwatch。elapsed(TimeUnit。MILLISECONDS)));I4Z鬼金羊

}通过spring中的StopWatch获取执行时间,我这里是使用的springboot搭建的控制台流程/**I4Z鬼金羊

*通过spring中的StopWatch获取执行时间I4Z鬼金羊

*@throwsInterruptedExceptionI4Z鬼金羊

*/I4Z鬼金羊

publicvoidgetExecuteByStopWatch3()throwsInterruptedException{I4Z鬼金羊

//TODOAuto-generatedmethodstubI4Z鬼金羊

org。springframework。util。StopWatchstopWatch=neworg。springframework。util。StopWatch();I4Z鬼金羊

stopWatch。start();I4Z鬼金羊

Thread。sleep(1000);I4Z鬼金羊

stopWatch。stop();I4Z鬼金羊

System。out。println(String。format("Totaltime:%dms",stopWatch。getTotalTimeMillis()));I4Z鬼金羊

}通过以上6种方式皆可以获取到流程的执行耗时,不晓得大伙是否还有其他别的方式呢?欢迎在留言区讨论。I4Z鬼金羊

I4Z鬼金羊

标签: