Java对两个日期时间操作进行相减

时间:2025-03-10 09:01:35

Java 求两个日期相减

    • 代码
    • 结果
    • 获取当前日期前半个小时的时间和后半个小时的时间
    • 得到的结果
      • 指定一个日期 获取指定日期前10分钟的时间
      • 结果

自己做下笔记方便后面查阅
日期格式:yyyy-MM-dd HH:mm:ss

代码

 DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d1 = df.parse("2004-01-05 13:31:40");
        Date d2 = df.parse("2004-01-02 13:30:40");

        long diff = d1.getTime() - d2.getTime();//这样得到的差值是毫秒级别
        long days = diff / (1000 * 60 * 60 * 24);

        long hours = (diff-days*(1000 * 60 * 60 * 24))/(1000* 60 * 60);
        long minutes = (diff-days*(1000 * 60 * 60 * 24)-hours*(1000* 60 * 60))/(1000* 60);
        System.out.println("结果:\t"+days+"天"+hours+"小时"+minutes+"分");

结果

  结果:	30小时1

获取当前日期前半个小时的时间和后半个小时的时间

DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date now = new Date();
        System.out.println("当前时间:" + sdf.format(now));

        Calendar nowTime = Calendar.getInstance();
        nowTime.add(Calendar.MINUTE,30); //30分钟后的时间
        Calendar nowTime2 = Calendar.getInstance();
        nowTime2.add(Calendar.MINUTE,-30); // 30分钟前的时间
        System.out.println("30分钟后的时间:\t"+sdf.format(nowTime.getTime()));
        System.out.println("30分钟前的时间:\t"+sdf.format(nowTime2.getTime()));

得到的结果

当前时间:2020-06-10 17:19:13
30分钟后的时间:	2020-06-10 17:49:13
30分钟前的时间:	2020-06-10 16:49:13

指定一个日期 获取指定日期前10分钟的时间


       Calendar nowTime3 = Calendar.getInstance();
        DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       nowTime3.setTime(sdf.parse("2020-06-11 12:00:00"));
       nowTime3.add(Calendar.MINUTE,-10);
        System.out.println("10分钟之前的时间是:"+sdf.format(nowTime3.getTime()));

结果

	10分钟之前的时间是:2020-06-11 11:50:00