当前位置: 代码网 > it编程>编程语言>Java > java程序中date类型比较大小问题

java程序中date类型比较大小问题

2024年11月10日 Java 我要评论
前言工作中遇到时间的比较问题,这里提供几种常用的date类型数据比较大小方式。compareto()方法before()方法after()方法gettime()方法1、compareto方法 /

前言

工作中遇到时间的比较问题,这里提供几种常用的date类型数据比较大小方式。

  • compareto()方法
  • before()方法
  • after()方法
  • gettime()方法

1、compareto方法

    /**
     * 时间比较方法compareto
     * 如果的d1比d2 大 结果=1
     * 如果的d1比d2 等 结果=0
     * 如果的d1比d2 小 结果=-1
     *
     * @param d1
     * @param d2
     */
    private void printresultcompareto(date d1,date d2){
        if(d1.compareto(d2) == 1){
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之后");
        }else if(d1.compareto(d2) == 0){
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " = " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) );
        }else{
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之前");
        }
    }

2、before方法

    /**
     * 使用before方法比较
     *
     * @param d1
     * @param d2
     */
    private void printresultbefore(date d1,date d2){
        if(d1.before(d2)){
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之前");
        }else{
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之后");
        }
    }

3、after方法

    /**
     * 使用after方法比较
     *
     * @param d1
     * @param d2
     */
    private void printresultafter(date d1,date d2){
        if(d1.after(d2)){
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之后");
        }else{
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之前");
        }
    }

4、gettime方法

    /**
     * 使用gettime方法取毫秒值比较
     *
     * @param d1
     * @param d2
     */
    private void printresultgettime(date d1,date d2){
        if(d1.gettime() > d2.gettime()){
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之后");
        }else if(d1.gettime() == d2.gettime()){
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " = " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) );
        }else{
            system.out.println(new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d1) + " 在 " + new simpledateformat(yyyy_mm_dd_hh_mm_ss).format(d2) + "之前");
        }
    }

测试代码

    //定义一个date1string1字符串
    private final string date1string1 = "2018-09-01 23:23:59";
    //定义一个date1string2字符串
    private final string date1string2 = "2020-04-20 23:23:59";
    //定义一个date1string3字符串
    private final string date1string3 = "2021-04-20 23:23:59";
    //参数格式化类型
    private final string yyyy_mm_dd_hh_mm_ss = "yyyy-mm-dd hh:mm:ss";

    //定义date类型数据
    private date date1;
    private date date2;
    private date date3;

    @before
    public void beforprint() throws parseexception {
        date1 = new simpledateformat(yyyy_mm_dd_hh_mm_ss).parse(date1string1);
        date2 = new simpledateformat(yyyy_mm_dd_hh_mm_ss).parse(date1string2);
        date3 = new simpledateformat(yyyy_mm_dd_hh_mm_ss).parse(date1string3);
        system.out.println("date1: " + date1string1);
        system.out.println("date2: " + date1string2);
        system.out.println("date3: " + date1string3);
    }

    /**
     * 使用compareto比较
     */
    @test
    public void testcompare(){
        system.out.println("--------------使用compareto比较-----------------");
        printresultcompareto(date1, date2);
        printresultcompareto(date3, date2);
        system.out.println("--------------使用before方法比较-----------------");
        printresultbefore(date1,date2);
        printresultbefore(date3, date2);
        system.out.println("--------------使用after方法比较-----------------");
        printresultafter(date1, date2);
        printresultafter(date3, date2);
        system.out.println("--------------使用gettime方法比较-----------------");
        printresultgettime(date1, date2);
        printresultgettime(date3, date2);
    }

测试结果

如下:

date1: 2018-09-01 23:23:59
date2: 2020-04-20 23:23:59
date3: 2021-04-20 23:23:59
--------------使用compareto比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
--------------使用before方法比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
--------------使用after方法比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后
--------------使用gettime方法比较-----------------
2018-09-01 23:23:59 在 2020-04-20 23:23:59之前
2021-04-20 23:23:59 在 2020-04-20 23:23:59之后

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com