如何在 Java 中比较两个日期
Asad Riaz
2023年10月12日
Java
Java DateTime
-
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
Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe