Javaでは、次の方法でJavaの経過時間を測定できます。
1. System.nanoTime()
これは、Javaの経過時間を測定するための推奨されるソリューションです。
ExecutionTime1.java
package com.mkyong.time; import java.util.concurrent.TimeUnit; public class ExecutionTime1 { public static void main(String[]args) throws InterruptedException { //start long lStartTime = System.nanoTime(); //task calculation(); //end long lEndTime = System.nanoTime(); //time elapsed long output = lEndTime - lStartTime; System.out.println("Elapsed time in milliseconds: " + output/1000000); } private static void calculation() throws InterruptedException { //Sleep 2 seconds TimeUnit.SECONDS.sleep(2); } }
出力は異なる場合があります。
2004
2. System.currentTimeMillis()
ExecutionTime2.java
package com.mkyong.time; import java.util.concurrent.TimeUnit; public class ExecutionTime2 { public static void main(String[]args) throws InterruptedException { long lStartTime = System.currentTimeMillis(); calculation(); long lEndTime = System.currentTimeMillis(); long output = lEndTime - lStartTime; System.out.println("Elapsed time in milliseconds: " + output); } private static void calculation() throws InterruptedException { //Sleep 2 seconds TimeUnit.SECONDS.sleep(2); } }
出力は異なる場合があります。
2006
3. Instant.now(). toEpochMilli()
Java 8では、新しい `java.time.Instant`を試すことができます。
ExecutionTime3.java
package com.mkyong.time; import java.time.Instant; import java.util.concurrent.TimeUnit; public class ExecutionTime3 { public static void main(String[]args) throws InterruptedException { long lStartTime = Instant.now().toEpochMilli(); calculation(); long lEndTime = Instant.now().toEpochMilli(); long output = lEndTime - lStartTime; System.out.println("Elapsed time in milliseconds: " + output); } private static void calculation() throws InterruptedException { //Sleep 2 seconds TimeUnit.SECONDS.sleep(2); } }
出力は異なる場合があります。
2006
4. Date(). getTime()
ExecutionTime4.java
package com.mkyong.time; import java.util.Date; import java.util.concurrent.TimeUnit; public class ExecutionTime4 { public static void main(String[]args) throws InterruptedException { long lStartTime = new Date().getTime(); calculation(); long lEndTime = new Date().getTime(); long output = lEndTime - lStartTime; System.out.println("Elapsed time in milliseconds: " + output); } private static void calculation() throws InterruptedException { //Sleep 2 seconds TimeUnit.SECONDS.sleep(2); } }
出力は異なる場合があります。
2007