Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Java中查找进程所花费的总时间_Java_Date_Datetime - Fatal编程技术网

如何在Java中查找进程所花费的总时间

如何在Java中查找进程所花费的总时间,java,date,datetime,Java,Date,Datetime,我有两个java日期时间值,我想知道这个过程花费的总时间 private static Date crawlStartDate,crawlEndDate,totalCrawlTime; 我怎么能得到这个?时间格式为YYYYMMDDHMMSS 谢谢在流程执行前争取时间 long t1=crawlStartDate.getTime() long t2=crawlEndDate.getTime() 获取进程执行后的时间 long t1=crawlStartDate.getTime() long

我有两个java日期时间值,我想知道这个过程花费的总时间

private static Date crawlStartDate,crawlEndDate,totalCrawlTime;
我怎么能得到这个?时间格式为YYYYMMDDHMMSS


谢谢

在流程执行前争取时间

long t1=crawlStartDate.getTime()
long t2=crawlEndDate.getTime()
获取进程执行后的时间

long t1=crawlStartDate.getTime()
long t2=crawlEndDate.getTime()
然后计算差值

long timeDiff=t2-t1;

Date date=new Date(timeDiff);
并使用SimpleDataFormat-

DateFormat formatet = new SimpleDateFormat("yyyyMMddHHmmss");

String formattedDate= formater.format(date);

你可以试试这个

   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;

}
publicstaticvoidmain(字符串[]argv){
long lStartTime=新日期().getTime();//开始时间
createArray();//一些任务需要消耗时间
long lEndTime=new Date().getTime();//结束时间
long difference=lEndTime-lstartime;//检查不同
System.out.println(“已用毫秒:“+差异”);
}
公共静态void createArray(){
试一试{
《睡眠》(2000年);
}捕捉(中断异常e){
e、 printStackTrace();
}
字符串sArray[]=新字符串[1000000];
对于(int i=0;i<1000000;i++)
sArray[i]=“数组”+i;
}
试试这个

  long differenceInSec = (crawlEndDate.getTime() - crawlEndDate.getTime())/1000;
Java解决方案:

long d1=crawlStartDate.getTime()
long d2=crawlEndDate.getTime()
long diff = d2 - d1;
long diffSeconds = diff / 1000 % 60;  
long diffMinutes = diff / (60 * 1000) % 60; 
如果您在Linux/BSD中工作,请使用
timeJavamyJavaProcess
<代码>时间这里是。例如,我可以通过以下方式测量某些过程:

$ time java Hello
One value
Two value

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

如果您已经更新到JAVA8,那么请尝试下面的代码

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);

可能的重复我会用joda时间来做这件事,但是有太多的重复,请详细说明“然后计算差异”部分。