2011-10-19 135 views
0

我在PHP中,這timeDiff測量功能:如何將此PHP timeDiff代碼轉換爲Android代碼?

PHP代碼:

function timeDiff($firstTime,$lastTime){ 
    // convert to unix timestamps 
    $firstTime=strtotime($firstTime); 
    $lastTime=strtotime($lastTime); 

    // perform subtraction to get the difference (in seconds) between times 
    $timeDiff=$lastTime-$firstTime; 

    // return the difference 
    return $timeDiff; 
} 

現在我想用在機器人上面的功能,所以我編寫這樣的:

的Android代碼:

private double timeDiff(String startTime, String endTime){ 
    try { 

     SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
     SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
     Date startTime_d = (Date) parser.parse(formater.format(startTime)); 
     Date endTime_d = (Date) parser.parse(formater.format(startTime)); 

     double dateDiff = startTime_d.getTime() - endTime_d.getTime(); 
     return dateDiff; 

    }catch(ParseException e){ 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    }catch(NullPointerException e){ 
     Log.e(LOG_TAG, e.toString()); 
    } 

    return 0; 
} 

但logcat說java.lang.IllegalArgumentException。

我是一名初學android程序員,感謝您的幫助! :)

回答

0

隨着Date objectsgetTime()方法,你可以得到毫秒至1月1日,1970年如果要日期之間的差值就可以計算出在毫秒之差,如下所示:

long diffMil = endTime_d.getTime() - startTime_d.getTime(); 
0

你叫解析器對象的解析方法與formater對象的解析器的輸出。我相信這是不正確的。試試這個:

private double timeDiff(String startTime, String endTime){ 
try { 

    SimpleDateFormat parser = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); 
    Date startTime_d = (Date) parser.parse(startTime); 
    Date endTime_d = (Date) parser.parse(endTime); 

    double dateDiff = startTime_d.getTime() - endTime_d.getTime(); 
    return dateDiff; 

}catch(ParseException e){ 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
}catch(NullPointerException e){ 
    Log.e(LOG_TAG, e.toString()); 
} 

return 0; 

} 
相關問題