Java实现两个日期相减等于天数

 更新时间:2023年09月05日 10:37:27   作者:Live a happy life  
这篇文章主要介绍了Java两个日期相减等于天数的实现方式,本文通过两种方式结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

需求

根据当前时间 如:2020-10-13 减去过去的某一天 如:2020-09-30

实现

方式一

      // 定义项目进行天数
      long Days = 0;
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      try {
          long time = sdf.parse("2021-01-19").getTime();
          long time1 = sdf.parse("2020-10-12")
              .getTime();
          Days = (int) ((time -time1) /(24
                        * 60 * 60 * 1000));
              } catch (ParseException e) {
          e.printStackTrace();
        }

方式二

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Calendar;
public class TestDay {
    public static void main(String[] args) {
        String dateStr1 = "2020-09-30";
        String dateStr2 = "2021-01-12";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
        try {
            dateStr1 = sdf.format(sdf2.parse(dateStr1));
            dateStr2 = sdf.format(sdf2.parse(dateStr2));
        } catch (ParseException e) {
            e.printStackTrace();
        }
        long time1 = time(dateStr1);
        long time2 = time(dateStr2);
        // 相减得出的天数mills
        long mills = time1> time2
                ? time1 - time2
                        : time2 - time1;
        System.out.println((int) (mills / 1000 / 3600 / 24));
    }
    // 封装截取字符串
    public  static long time(String times){
        int year = Integer.parseInt(times.substring(0, 4));
        int month = Integer.parseInt(times.substring(4, 6));
        int day = Integer.parseInt(times.substring(6, 8));
        Calendar c = Calendar.getInstance();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month - 1);
        c.set(Calendar.DAY_OF_MONTH, day);
        return (c.getTimeInMillis());
    }
}

注意

以上两种方式实现都可以,可以试着尝试一下,自己偏向第一种,代码少嘛,自己犯了一个不改犯的问题,导致排查了半天。自己定义yyyy-mm-dd ,mm小写,导致出现负数的情况,在转化的时候出现的问题,M与m的区别 区分 月和分,如:yyyy-MM-dd HH:mm:ss;

      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      // 自己定义yyyy-mm-dd ,mm小写,导致出现负数的情况,M与m的区别 区分 月和分,如:yyyy-MM-dd HH:mm:ss;
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-mm-dd");

到此这篇关于Java两个日期相减等于天数的文章就介绍到这了,更多相关java日期相减等于天数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java流处理stream使用详解

    Java流处理stream使用详解

    Java8的另一大亮点Stream,它与java.io包里的InputStream和OutputStream是完全不同的概念,下面这篇文章主要给大家介绍了关于Java8中Stream详细使用方法的相关资料,需要的朋友可以参考下
    2022-10-10
  • Java获取网页数据步骤方法详解

    Java获取网页数据步骤方法详解

    这篇文章主要介绍了Java获取网页数据步骤方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Flutter实现容器组件、图片组件 的代码

    Flutter实现容器组件、图片组件 的代码

    容器组件(Container)可以理解为在Android中的RelativeLayout或LinearLayout等,在其中你可以放置你想布局的元素控件,从而形成最终你想要的页面布局。这篇文章主要介绍了Flutter实现容器组件、图片组件 的代码,需要的朋友可以参考下
    2019-07-07
  • Java如何自定义异常打印非堆栈信息详解

    Java如何自定义异常打印非堆栈信息详解

    这篇文章主要给大家介绍了关于Java如何自定义异常打印非堆栈信息的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • Spring Session的使用示例

    Spring Session的使用示例

    最近团队一个项目需要使用Session,之前没有在实际项目中使用过Spring-Session,这里记录一下使用的过程
    2021-06-06
  • 使用Java实现验证码程序

    使用Java实现验证码程序

    这篇文章主要为大家详细介绍了使用Java实现验证码程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • java 中 String format 和Math类实例详解

    java 中 String format 和Math类实例详解

    这篇文章主要介绍了java 中 String format 和Math类实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • IDEA2020.1常用配置说明

    IDEA2020.1常用配置说明

    这篇文章主要介绍了IDEA2020.1常用配置说明,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Spring为IOC容器注入Bean的五种方式详解

    Spring为IOC容器注入Bean的五种方式详解

    这篇文章主要介绍了Spring为IOC容器注入Bean的五种方式详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • java中加密的实现方法(MD5,MD2,SHA)

    java中加密的实现方法(MD5,MD2,SHA)

    这篇文章主要介绍了java中加密的实现方法(MD5,MD2,SHA)的相关资料,这里提供三种实现加密的方法,大家可以对比一下,需要的朋友可以参考下
    2017-08-08

最新评论