时间大小的比较

时间大小比较的几种方法

注意:时间SimpleDateFormat("yyyy-MM-dd HH:mm:ss")也可以是SimpleDateFormat("HH:mm:ss"),只要放进去的时间一致就可以,不一致就会抛出异常。

 

1.java.util.Date类实现了Comparable接口,可以直接调用Date的compareTo()方法来比较大小

public class HelloWorld {
   public static void main(String[] args) throws ParseException {
       System.out.println("哈哈哈!");
       String startTime = "2019-07-13 14:26:33";
       String endTime = "2018-07-13 14:27:42";
       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");   //simple:简单
       try {
           Date parse1 = format.parse(startTime);
           Date parse2 = format.parse(endTime);
           int i = parse1.compareTo(parse2);  //parse1小于parse2返回-1,parse1大于parse2返回1,相等返回0
           System.out.println(i);
      } catch (ParseException e){
           e.printStackTrace();
      }
  }
}

理解:有parse,就必须要try,catch且必须到秒(看你自己new 的时间格式)。

 

 

2.通过Date自带的before(之前)或者after(之后)方法进行比较.

 public static void Date2() throws ParseException {
       String startTime = "2019-07-13 14:26:33";
       String endTime = "2018-07-13 14:27:42";

       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
       Date parse1 = format.parse(startTime);
       Date parse2 = format.parse(endTime);
       boolean b = parse1.after(parse2);   //之后
       boolean b1 = parse1.before(parse2); //之前
       System.out.println("startTime在endTime之后:" + b);
       System.out.println("startTime在endTime之后:"+ b1);
  }

理解:用affer和before比较,在正确就是ture,负责就是false,也要try,catch防止时间格式问题。

 

3.通过Date自带的getTime方法来比较,该方法是将时间转为long类型进行大小的比较。

  public static void Date3() throws ParseException {
       String startTime = "2019-07-13 14:26:33";
       String endTime = "2018-07-13 14:27:42";

       SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

       Date parse1 = format.parse(startTime);
       Date parse2 = format.parse(endTime);

       System.out.println(parse1.getTime());
       System.out.println(parse2.getTime());
       if (parse1.getTime() > parse2.getTime()){
           System.out.println("stareTime时间大于endTime");
      } else {
           System.out.println("stareTime时间小于endTime");
      }
  }

理解:用到了parse(解析),就有try,catch。这个是比较大小。将时间转化为毫秒然后进行比较大小。

posted @ 2022-08-12 16:02  锦书南辞  阅读(1517)  评论(0编辑  收藏  举报