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));
}

}
4

2 回答 2

8

您必须在第一个位置使用MM而不是日期格式:是分钟,是月mmmmMM

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy H:mm:ss");
于 2013-04-09T13:40:07.263 回答
3

您使用的日期格式是混合分钟和月份。

您应该改用这种格式:MM/dd/yyyy HH:mm:ss

此外,计算是错误的,你得到了小时的差异,如果你想要小时,你应该使用这个:System.out.println((difference / 1000) / 60);

于 2013-04-09T13:44:44.077 回答