java日期的比较

192 阅读1分钟

工作中经常会遇到日期的比较,下面介绍三种最简单的比较方式

 package com.test;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
  public class DateTest02 {
 public static void main(String[] args) {
    //定义里两个时间
    String beginTime=new String("2019-07-08 17:22:22");
    String endTime=new String("2019-07-09 17:40:22");
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date sd1= null;
    Date sd2= null;
    try {
        sd1 = df.parse(beginTime);
        sd2 = df.parse(endTime);
    } catch (ParseException e) {
        e.printStackTrace();
    }
    //1.直接用Date自带方法before()和after()比较
    System.out.println(sd1.before(sd2));
    System.out.println(sd1.after(sd2));
    //2.String的compareTo()方法比较
    Integer i=beginTime.compareTo(endTime);
    //返回正值是代表左侧日期大于参数日期(左侧日期在右侧日期之前),反之亦然,日期格式必须一致
    System.out.println(i);
    //3.转成date格式换成秒数比较秒数大小,getTime()方法 正数说明第一个时间在第二个时间之前后,反之亦然。
    long long1 =sd1.getTime();
    long long2= sd2.getTime();
    System.out.println(long1);
    System.out.println(long2);
    System.out.println(long1-long2);
   }
 }

运行结果

 true
 false
 -1
 1562577742000
 1562665222000
 -87480000