Java常用的日期比較方法


方法1、Date或者String的compareTo()方法,其值返回1、-1或0

package com.my.test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateCompare1 {
    public static void main(String[] args) throws ParseException {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date1 = df.parse("2022-02-16 10:22:01");
        Date date2 = df.parse("2022-02-15 10:22:01");
        if (date1.compareTo(date2) == 1) {
            System.out.println("Date1比Date2晚");
        } else if (date1.compareTo(date2) == -1) {
            System.out.println("Date1比Date2早");
        } else if (date1.compareTo(date2) == 0) {
            System.out.println("Date1與Date2相等");
        }
    }
}
package com.my.test;

public class DateCompare2 {
    public static void main(String[] args) {
        String date1 = "2022-02-16 10:22:01";
        String date2 = "2022-02-15 10:22:01";
        if (date1.compareTo(date2) == 1) {
            System.out.println("Date1比Date2晚");
        } else if (date1.compareTo(date2) == -1) {
            System.out.println("Date1比Date2早");
        } else if (date1.compareTo(date2) == 0) {
            System.out.println("Date1與Date2相等");
        }
    }
}

結果:

方法2、Date的getTime()方法,轉換為比較其毫秒值大小

package com.my.test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateCompare3 {
    public static void main(String[] args) throws ParseException {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date1 = df.parse("2022-02-16 10:22:01");
        Date date2 = df.parse("2022-02-15 10:22:01");
        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相等");
        }
    }
}

結果:

 方法3、Date的before(), after(), equals()方法

package com.my.test;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class DateCompare4 {
    public static void main(String[] args) throws ParseException {
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date date1 = df.parse("2022-02-16 10:22:01");
        Date date2 = df.parse("2022-02-15 10:22:01");
        if (date1.after(date2)) {
            System.out.println("Date1比Date2晚");
        }
        if (date1.before(date2)) {
            System.out.println("Date1比Date2早");
        }
        if (date1.equals(date2)) {
            System.out.println("Date1與Date2相等");
        }
    }
}

結果:

 這里推薦方法2,因為方法1與方法3的底層原理也是由方法2實現的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM