Javaを使用して2つのシステム時間を減算する方法

2019-04-13 java selenium time date-difference elapsedtime

Seleniumスクリプトを作成しましたが、スクリプトの合計実行時間を計算したいと思います。スクリプトの実行が開始されたときと終了したときにシステムから返された時間を減算するにはどうすればよいですか?

JavaのDateおよびSimpleDateFormatクラスを使用してシステム時間を取得してからフォーマットしていますが、合計時間を返すためにフォローしているメソッドが間違っているようです。

    String dateStart = "01/14/2012 23:05:49";
    String dateStop = "01/15/2012 23:07:00";

    SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

    Date d1 = null;
    Date d2 = null;

    try {
        d1 = sdf.parse(dateStart);
        d2 = sdf.parse(dateStop);

        //in milliseconds
        long diff = d2.getTime() - d1.getTime();

        long diffSeconds = diff / 1000 % 60;
        long diffMinutes = diff / (60 * 1000) % 60;
        long diffHours = diff / (60 * 60 * 1000) % 24;
        //long diffDays = diff / (24 * 60 * 60 * 1000);

        //System.out.print(diffDays + " days, ");
        System.out.print(diffHours + " hours, ");
        System.out.print(diffMinutes + " minutes, ");
        System.out.print(diffSeconds + " seconds.");

    } catch (Exception e) {
        e.printStackTrace();
    }

Answers

以下のコードを使用してください:

TimeUnit列挙型

次の式は、 TimeUnit enum(Java 5以降)を使用して、ナノ秒から秒に変換します。

public static void main (String[] args) { 
long start = System.nanoTime(); 
//some try with nested loops 
long end = System.nanoTime(); 
long elapsedTime = end - start;

System.out.println("elapsed: " + elapsedTime + "nano seconds\n");

//convert to seconds 
TimeUnit seconds = new TimeUnit(); 
System.out.println("which is " + TimeUnit.NANOSECONDS.toSeconds(elapsedTime) + " seconds"); 
}}

Related