Java Date日期比较

23 篇文章 0 订阅
3 篇文章 1 订阅

Java 日期比较
在开发过程中,我们可能会遇到选择日期,作为筛选条件,有个开始时间,和截止时间,但是在处理相关的逻辑的过程中,我们还是需要去判断,开始时间不能比截止时间大,自己在开发过程中,总结出一些方法,如下:

  1. 方法一:
    通过java自带的api去直接处理,方便又快捷,有before(Date date),after(Date date),我们进入该api后,看到内部原理机制如下` /**
   * Returns if this {@code Date} is after the specified Date.
     *
     * @param date
     *            a Date instance to compare.
     * @return {@code true} if this {@code Date} is after the specified {@code Date},
     *         {@code false} otherwise.
     */
    public boolean after(Date date) {
        return milliseconds > date.milliseconds;
    }

    /**
     * Returns if this {@code Date} is before the specified Date.
     *
     * @param date
     *            a {@code Date} instance to compare.
     * @return {@code true} if this {@code Date} is before the specified {@code Date},
     *         {@code false} otherwise.
     */
    public boolean before(Date date) {
        return milliseconds < date.milliseconds;
    }`

在此我们这里的start与end都是Date类型,具体用法:

before

 if (java.sql.Date.valueOf(start).before(java.sql.Date.valueOf(end))){
                  //处理相关的逻辑             
                            }

after

 if (java.sql.Date.valueOf(start).after(java.sql.Date.valueOf(end))){
                    //do your action           
                            }
  1. 方法二:
    其实就是把他们转换成milliseconds,然后直接作比较,其实就是我们官方自己的api,before、after点击入去看,最终都是在比较milliseconds。
 public static int compare_date(String DATE1, String DATE2) {


        DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm");
        try {
            Date dt1 = df.parse(DATE1);
            Date dt2 = df.parse(DATE2);
            if (dt1.getTime() > dt2.getTime()) {
                System.out.println("dt1 在dt2后");
                return 1;
            } else if (dt1.getTime() < dt2.getTime()) {
                System.out.println("dt1在dt2前");
                return -1;
            } else {
                return 0;
            }
        } catch (Exception exception) {
            exception.printStackTrace();
        }
        return 0;
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值