2011-10-19 92 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; 

} 
相关问题