sarath
sarath

Reputation: 455

how to find the total time taken for a process in Java

i have two java date time values and i want to know the total time taken for the process.

private static Date crawlStartDate,crawlEndDate,totalCrawlTime;

how can i get that? time format is yyyyMMddhhmmss

Thanks

Upvotes: 0

Views: 2003

Answers (6)

Michael Kazarian
Michael Kazarian

Reputation: 4462

Java solution:

long d1=crawlStartDate.getTime()
long d2=crawlEndDate.getTime()
long diff = d2 - d1;
long diffSeconds = diff / 1000 % 60;  
long diffMinutes = diff / (60 * 1000) % 60; 

If you work in Linux/BSD use time java MyJavaProcess . time here is unix utility. For example I can measure some process in this way:

$ time java Hello
One value
Two value

real    0m0.070s
user    0m0.068s
sys 0m0.000s

Upvotes: 1

Abhishek Mishra
Abhishek Mishra

Reputation: 639

if you have updated to JAVA8 then try the below code

LocalDateTime dateTime = LocalDateTime.of(2014, 06, 27, 15, 12);
        LocalDateTime dateTime2 = LocalDateTime.now();

        int diffInNano = java.time.Duration.between(dateTime, dateTime2)
                .getNano();
        long diffInSeconds = java.time.Duration.between(dateTime, dateTime2)
                .getSeconds();

        long diffInMilli = java.time.Duration.between(dateTime, dateTime2)
                .toMillis();
        long diffInMinutes = java.time.Duration.between(dateTime, dateTime2)
                .toMinutes();
        long diffInHours = java.time.Duration.between(dateTime, dateTime2)
                .toHours();
        System.out.println(diffInNano);
        System.out.println(diffInSeconds);
        System.out.println(diffInMilli);
        System.out.println(diffInMinutes);
        System.out.println(diffInHours);

Upvotes: 0

Ashok_Pradhan
Ashok_Pradhan

Reputation: 1169

try this

  long differenceInSec = (crawlEndDate.getTime() - crawlEndDate.getTime())/1000;

Upvotes: 0

user2851150
user2851150

Reputation: 405

enter code here
     String dateStart = "01/14/2012 09:29:58";
    String dateStop = "01/15/2012 10:31:48";
    SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");

    Date d1 = null;
    Date d2 = null;
    try {
     d1= format.parse(dateStart);
     d2 = format.parse(dateStop);
     long diff = d2.getTime() - d1.getTime();
     long diffDays = diff / (24 * 60 * 60 * 1000);
     System.out.print("Days:" + diffDays);
    }catch(Exception e ) {

    }

Upvotes: 0

learner
learner

Reputation: 365

you can try like this one..

   public static void main(String[] argv) {

    long lStartTime = new Date().getTime(); // start time

    createArray(); // some tasks to eat time

    long lEndTime = new Date().getTime(); // end time

    long difference = lEndTime - lStartTime; // check different

    System.out.println("Elapsed milliseconds: " + difference);

}

public static void createArray() {

    try {
        Thread.sleep(2000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }

    String sArray[] = new String[1000000];

    for (int i = 0; i < 1000000; i++)
        sArray[i] = "Array " + i;

}

Upvotes: 1

Ninad Pingale
Ninad Pingale

Reputation: 7069

Get time before process execution

long t1=crawlStartDate.getTime()

Get time after process execution

long t2=crawlEndDate.getTime()

and then calculate difference

long timeDiff=t2-t1;

Date date=new Date(timeDiff);

and format it using SimpleDateFormat-

DateFormat formatet = new SimpleDateFormat("yyyyMMddHHmmss");

String formattedDate= formater.format(date);

Upvotes: 0

Related Questions