java - 计算月份变化时的时差

标签 java

我一直在尝试计算两个日期之间的时差,以分钟为单位。下面的代码是我所拥有的。但它给了我负面的值(value)。谁能帮帮我!!?

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

}

最佳答案

您必须在第一个位置的日期格式中使用 MM 而不是 mm:mm is minutes, MM is months :

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

关于java - 计算月份变化时的时差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15903466/

相关文章:

java - Maven:将未知的 jar 文件导入存储库

Java - 在圆的边缘、顶部和底部绘制文本

Java 是一个数组列表按顺序包含另一个数组列表

java - Spring RestTemplate,GsonHttpMessageConverter

java - Android - 如何使用 Volley 库将多维 JSON 结果处理到微调器中

java - java 数组有多重?

java - 具有非托管对象的 CDI

java - JPA remove() 一个 deteched 实体 : find() vs merge() - Which is better?

java - 我如何在 gradle 中打印出 JAVA 类路径?

java - 异步调用多个单独线程。但是一个线程陷入循环而另一个线程不执行