首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >小工具|计算两个日期之间的天数?

小工具|计算两个日期之间的天数?

作者头像
技术从心
发布2019-08-06 17:05:36
3.1K0
发布2019-08-06 17:05:36
举报
文章被收录于专栏:技术从心技术从心

计算两个日期的间距

在开发中我们常要使用到日期格式的转换或者是计算两个时间的间距,因此很有必要自己封装一个通用的工具类方便自己以后调用使用,方便自己的开发,也可使项目更简洁。

一、当传参是两个Date类型时:

/**
     * 计算两个日期之间相差的天数
     * @param date1 较小的时间
     * @param date2  较大的时间
     * @return 相差天数
     * @throws ParseException
     * calendar 对日期进行时间操作
     * getTimeInMillis() 获取日期的毫秒显示形式
     */
    public static int daysBetween(Date date1,Date date2){
        Calendar cal = Calendar.getInstance();
        cal.setTime(date1);
        long time1 = cal.getTimeInMillis();
        cal.setTime(date2);
        long time2 = cal.getTimeInMillis();
        long between_days = (time2 - time1)/(1000*3600*24);
        return Integer.parseInt(String.valueOf(between_days));
    }

二、当传参是两个string类型时:

/**
     * 字符串日期格式的计算
     * @param date1 较小的日期
     * @param date2 较大的日期
     * @return
     * @throws ParseException
     */
    public static int daysBetween(String date1,String date2) throws ParseException{
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(date1));
        long time1 = cal.getTimeInMillis();
        cal.setTime(sdf.parse(date2));
        long time2 = cal.getTimeInMillis();
        long between_days=(time2-time1)/(1000*3600*24);
        return Integer.parseInt(String.valueOf(between_days));
    }

三、当传参是一个string类型和一个Date类型时:

/**
     * 字符串日期格式和date日期格式的计算
     * @param date1
     * @param date2
     * @return
     * @throws ParseException
     */
    public static int daysBetween(String date1,Date date2) throws ParseException {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        cal.setTime(sdf.parse(date1));
        long time1 = cal.getTimeInMillis();
        cal.setTime(date2);
        long time2 = cal.getTimeInMillis();
        long between_days=(time2-time1)/(1000*3600*24);
        return Integer.parseInt(String.valueOf(between_days));
    }

四、测试

/**
     * @param args
     * @throws ParseException
     * format() 对日期进行格式化处理
     * parse() 将日期设置为date类型
     */
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date1 = sdf.parse("2019-04-12");
        Date date2 = sdf.parse("2019-05-12");
        Date date3 = sdf.parse(sdf.format(new Date())); //将当前时间转化成所需格式
        System.out.println(daysBetween(date1,date2));
        System.out.println(daysBetween(date1, date3));
        System.out.println(daysBetween("2019-04-12","2019-05-12"));
        System.out.println(daysBetween("2019-04-12", date3));
    }

在看、转发和辣条会提升颜值哦~

关注我

每天进步一点点

万水千山总是情,点个 “在看” 行不行

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-05-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 技术从心 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 计算两个日期的间距
  • 一、当传参是两个Date类型时:
  • 二、当传参是两个string类型时:
  • 三、当传参是一个string类型和一个Date类型时:
  • 四、测试
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档