如何在 Java 中比较两个日期
Asad Riaz
2023年10月12日
-
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("yyyy-dd-mm");
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