Java 日期时间比较

Java使用以下三种方法来比较两个日期:

  1. 使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。
  2. 使用方法 before(),after() 和 equals()。例如,一个月的12号比18号早,则 new Date(99, 2, 12).before(new Date (99, 2, 18)) 返回true。
  3. 使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 
 * @version 2018/12/4 12:41
 */
public class app {
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date1 = sdf.parse("2018-12-13 23:59:59");
        Date date2 = sdf.parse("2018-12-14 23:59:59");
        test1(date1,date2);
        test2(date1,date2);
        test3(date1,date2);
    }

    //日期比较-->使用方法 before(),after() 和 equals()
    public static void test1(Date date1,Date date2) {
            if (date1.before(date2)) {
                System.out.println("date1" + "在" + "date2" + "之前");
            } else if (date1.after(date2)) {
                System.out.println("date1" + "在" + "date2" + "之后");
            } else {
                System.out.println("date1" + "和" + "date2" + "相等");
            }
    }

    //日期比较-->使用 getTime() 方法获取两个日期(自1970年1月1日经历的毫秒数值),然后比较这两个值。

    public static void test2(Date date1,Date date2) {
        if (date1.getTime() < date2.getTime()) {
            System.out.println("date1" + "在" + "date2" + "之前");
        } else if (date1.getTime() > date2.getTime()) {
            System.out.println("date1" + "在" + "date2" + "之后");
        } else {
            System.out.println("date1" + "和" + "date2" + "相等");
        }

    }

    //日期比较-->使用 compareTo() 方法,它是由 Comparable 接口定义的,Date 类实现了这个接口。
    //两者相等时候返回0。调用对象在指定日期之前则返回负数。调用对象在指定日期之后则返回正数。
    public static void test3(Date date1,Date date2) {
        int i = date1.compareTo(date2);
        if (i < 0) {
            System.out.println("date1" + "在" + "date2" + "之前");
        } else if (i > 0) {
            System.out.println("date1" + "在" + "date2" + "之后");
        } else {
            System.out.println("date1" + "和" + "date2" + "相等");
        }
    }

你可能感兴趣的:(JavaSE)