java计算时间

比如说:

现在是 :2004-03-26 13:31:40

过去是:2004-01-02 11:30:24

我现在要获得两个日期差,差的形式为:XX天XX小时XX分XX秒

这前后时间可能是机器生成的,也可能是人工输入的,那么我们可以通过下面代码来实现

[java] view plain copy
print ?
  1. DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");  
  2.     try  
  3.     {  
  4.       Date d1 = df.parse("2004-03-26 13:31:40");  
  5.       Date d2 = df.parse("2004-01-02 11:30:24");  
  6.       long diff = d1.getTime() - d2.getTime();//这样得到的差值是微秒级别  
  7.       long days = diff / (1000 * 60 * 60 * 24);  
  8.    
  9.       long hours = (diff-days*(1000 * 60 * 60 * 24))/(100060 * 60);  
  10.       long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(100060 * 60))/(100060);  
  11.       System.out.println(""+days+"天"+hours+"小时"+minutes+"分");  
  12.     }catch (Exception e)  
  13.     {  
那么你可以在系统启动时记录下时间,然后在你想结束的时候再记录一次时间,两次时间记录值作差。具体可参考Java、Android超精确测量代码执行时间

得到的差值也是微秒级别的,利用类似的方法,得到秒、分、时、天即可。

  

你可能感兴趣的:(java计算时间)