โดยทั่วไป เวลาที่ผ่านไปคือเวลาจากจุดเริ่มต้นถึงจุดสิ้นสุดของเหตุการณ์ ต่อไปนี้เป็นวิธีต่างๆ ในการค้นหาเวลาที่ผ่านไปใน Java -
- เมธอด currentTimeMillis() จะคืนค่าเวลาปัจจุบันเป็นมิลลิวินาที ในการหาเวลาที่ผ่านไปสำหรับวิธีการหนึ่งๆ คุณสามารถรับความแตกต่างระหว่างค่าของเวลาก่อนและหลังการดำเนินการของวิธีการที่ต้องการได้
- เมธอด nanoTime() จะคืนค่าเวลาปัจจุบันเป็นนาโนวินาที ในการหาเวลาที่ผ่านไปสำหรับวิธีการหนึ่งๆ คุณสามารถรับความแตกต่างระหว่างค่าของเวลาก่อนและหลังการดำเนินการของวิธีการที่ต้องการได้
- เมธอด now() ของคลาส Instant จะคืนค่าเวลาปัจจุบัน และวิธีการ Duration.between() จะคืนค่าส่วนต่างระหว่างค่าเวลาสองค่าที่ระบุเพื่อรับเวลาที่ผ่านไป ดึงค่าเวลาก่อนและหลังการดำเนินการตามที่ต้องการ เมธอดและดึงระยะเวลาโดยใช้เมธอด Duration.between()
- ไลบรารี่ทั่วไปของ Apache มีคลาสที่เรียกว่า Stopwatch ซึ่งให้เมธอด start() stop() และ getTime() เพื่อค้นหาเวลาที่ใช้สำหรับการดำเนินการของเมธอด
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงให้เห็นถึงวิธีการหาเวลาดำเนินการของวิธีการโดยใช้วิธีการที่กล่าวถึงข้างต้น -
นำเข้า java.time.Duration;import java.time.Instant;import org.apache.commons.lang3.time.StopWatch; ตัวอย่างคลาสสาธารณะ { การทดสอบโมฆะสาธารณะ () { int num =0; สำหรับ (int i=0; i<=50; i++){ num =num+i; System.out.print(num+", "); } } โมฆะคงที่สาธารณะ main(String args[]){ Example obj =new Example(); start1 นาน =System.nanoTime(); obj.test(); ปลายยาว 1 =System.nanoTime(); System.out.println("เวลาที่ผ่านไปในหน่วยนาโนวินาที:"+ (end1-start1)); start2 นาน =System.currentTimeMillis(); obj.test(); ปลายยาว2 =System.currentTimeMillis(); System.out.println("เวลาที่ผ่านไปเป็นมิลลิวินาที:"+ (end2-start2)); ทันที inst1 =Instant.now(); obj.test(); ทันที inst2 =ทันที. ทันที (); System.out.println("เวลาที่ผ่านไป:"+ Duration.between(inst1, inst2).toString()); StopWatch stopWatch =นาฬิกาจับเวลาใหม่ (); stopWatch.start(); obj.test(); stopWatch.stop(); System.out.println("เวลาที่ผ่านไปเป็นนาที:"+ stopWatch.getTime()); }}