在java中找出两次之间的差异

bha*_*thi 2 java time grails date date-arithmetic

我有一个搜索按钮,当用户点击搜索按钮时,会调用search()方法.我需要计算在谷歌搜索中看到向用户显示结果所花费的时间.

这是我的代码.

        SimpleDateFormat sdfDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String strDate;
def startTime() { 
    Calendar cal = Calendar.getInstance();
    System.out.println("Current milliseconds since 13 Oct, 2008 are :"
    + cal.getTimeInMillis());
    long startTime=cal.getTimeInMillis();
    /*Date startNow = new Date();
    strDate = sdfDate.format(startNow);
    Date startTime=sdfDate.parse(strDate);
    print "startTime"+startTime*/
    return  startTime;

}
def endTime(){
    Calendar cal = Calendar.getInstance();
    System.out.println("Current milliseconds  :"
    + cal.getTimeInMillis());
    long endTime=cal.getTimeInMillis();
    /*Date endNow = new Date();
    print "endNow"+endNow
    strDate = sdfDate.format(endNow);
    Date endTime=sdfDate.parse(strDate);
    print "endTime"+endTime*/
    return endTime;
}

def differenceTime(long startTime,long endTime){
    print "requestEndTime"+endTime
    print "requestStartTime"+startTime
    long timeDifference = endTime - startTime;
    return timeDifference;
}
Run Code Online (Sandbox Code Playgroud)

在这里,我试图获取开始时间和结束时间,并尝试计算差异.我知道我实施的方式是否正确?请告诉我通常如何计算时差.

Igo*_*nov 5

而不是使用Calendar它更容易使用System.currentTimeMillis():

def startTime() { 
    long startTime=System.currentTimeMillis();
    return  startTime;
}
Run Code Online (Sandbox Code Playgroud)

基于System.currentTimeMillis()计算时间差在Java中很常见,你会做得对(我的意思是endTime - startTime)

所以,你的代码看起来像:

long startTime = System.currentTimeMillis();
// .....
// processing request
// .....
long endTime = System.currentTimeMillis();
long differenceTime = endTime - startTime;
log.debug("Request time: " + differenceTime);
//or
log.debug("Request time: " + TimeUnit.MILLISECONDS.toSeconds(differenceTime) + " sec");
Run Code Online (Sandbox Code Playgroud)