2013-04-09 82 views
1

我一直在试图计算两个日期之间的时间差,以分钟为单位。下面的代码是我拥有的。但它给了我负面的价值。谁能帮我!!?计算月份变化的时差

import java.util.Date; 
import java.text.ParseException; 
import java.text.SimpleDateFormat; 


public class time { 

/** 
* @param args 
* @throws ParseException 
*/ 
public static void main(String[] args) throws ParseException { 
    // TODO Auto-generated method stub 

    String time1 = "05/01/2010 11:59:00"; 
    String time2 = "04/30/2010 23:59:00"; 

    SimpleDateFormat sdf = new SimpleDateFormat("mm/dd/yyyy H:mm:ss"); 
    Date date1 = sdf.parse(time1); 
    Date date2 = sdf.parse(time2); 
    long difference = date1.getTime() - date2.getTime(); 
    System.out.println(difference/(3600*1000)); 
} 

} 

回答

8

您必须在第一位置,在你的日期格式使用MM代替mmmm is minutes, MM is months

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy H:mm:ss"); 
+0

非常感谢帮助我 – user2261923 2013-04-09 14:09:08

3

您所使用的日期格式为混合分钟和几个月。

你应该使用这个格式来代替:MM/dd/yyyy HH:mm:ss

另外,计算是错误的,你越来越以小时为单位的差别,如果你想要个小时,你应该这样做:System.out.println((difference/1000)/60);

+0

非常感谢您的帮助 – user2261923 2013-04-09 14:09:37