如何在 Java 中比較兩個日期
Asad Riaz
2023年1月30日
2020年6月9日
-
before()
方法比較 Java 中的兩個日期 -
after()
方法來比較 Java 中的兩個日期 -
用
equals()
方法比較 Java 中的兩個日期 -
compareTo()
方法來比較 Java 中的兩個日期
在本教程中,我們將學習多種方法來比較 Java 中的日期。為了獲得理想的結果,我們可以用以下的方法,即 before()
,after()
,equals()
和 compareTo()
。
before()
方法比較 Java 中的兩個日期
第一種方法是 Java Date
類中的 before()
方法,該方法執行日期 Date
物件與給定的 Date
即時比較。當日期物件早於給定的日期物件時,它將返回真。
示例程式碼:
// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTesting {
public static void main(String[] args) {
try {
SimpleDateFormat dateFormat = new
SimpleDateFormat ("yyyy-MM-dd");
Date date1 = dateFormat.parse("2019-09-16");
Date date2 = dateFormat.parse("2020-01-25");
System.out.println("Date-1: " +
dateFormat.format(date1));
System.out.println("Date-2: " +
dateFormat.format(date2));
if(date1.before(date2)){
System.out.println(
"Date-1 is before Date-2");
}
} catch (ParseException ex) {
}
}
}
輸出:
Date-1: 2019-09-16
Date-2: 2020-01-25
Date-1 is before Date-2
after()
方法來比較 Java 中的兩個日期
另一種實現這種比較的方法是通過在 Java Date
類中使用 after()
方法。此方法與上述之前方法相反,並且當日期物件晚於給定的日期物件時返回 true
。
示例程式碼:
// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTesting {
public static void main(String[] args) {
try {
SimpleDateFormat sdformat = new
SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdformat.parse("2020-01-25");
Date date2 = sdformat.parse("2019-09-16");
System.out.println("Date-1: " +
sdformat.format(date1));
System.out.println("Date-2: " +
sdformat.format(date2));
if (date1.after(date2)) {
System.out.println(
"Date-1 is after Date-2");
}
} catch (ParseException ex) {
}
}
}
輸出:
Date-1: 2020-01-25
Date-2: 2019-09-16
Date-1 is after Date-2
用 equals()
方法比較 Java 中的兩個日期
另一種方法是在 Java Date
類中使用 equals()
方法。如果兩個日期一樣的話,則返回 true
。
示例程式碼:
// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTesting {
public static void main(String[] args) {
try {
SimpleDateFormat sdformat = new
SimpleDateFormat("dd-MM-yyyy");
Date date1 = sdformat.parse("2020-01-25");
Date date2 = sdformat.parse("2020-01-25");
System.out.println("Date-1: " +
sdformat.format(date1));
System.out.println("Date-2: " +
sdformat.format(date2));
if (date1.equals(date2)) {
System.out.println(
"Date-1 is same as Date-2");
}
} catch (ParseException ex) {
}
}
}
輸出:
Date-1: 2020-01-25
Date-2: 2020-01-25
Date-1 is same as Date-2
compareTo()
方法來比較 Java 中的兩個日期
最後一種方法是 Java Date
類中的 compareTo()
方法。它比較兩個日期並根據比較結果返回不同的值。
- 如果引數日期等於日期物件,則返回
0
- 如果
Date
物件在引數日期之後,則返回正值 - 如果
Date
物件早於引數日期,則返回負數
示例程式碼:
// java 1.8
package simpletesting;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SimpleTesting {
public static void main(String[] args) {
try {
SimpleDateFormat sdformat = new
SimpleDateFormat("yyyy-MM-dd");
Date date1 = sdformat.parse(
"2020-01-25");
Date date2 = sdformat.parse("2020-01-23");
System.out.println(
"Date-1: " + sdformat.format(date1));
System.out.println(
"Date-2: " + sdformat.format(date2));
if(date1.compareTo(date2) > 0) {
System.out.println(
"Date-1 is after Date-2");
} else if(date1.compareTo(date2) < 0) {
System.out.println(
"Date-1 is before Date-2");
} else if(date1.compareTo(date2) == 0) {
System.out.println(
"Date-1 is same as Date-2");
}
} catch (ParseException ex) {
}
}
}
輸出:
Date-1: 2020-01-25
Date-2: 2020-01-23
Date-1 is after Date-2