如何在 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
相关文章
Java 中从 java.util.date 转为 java.sql.date
发布时间:2023/08/11 浏览次数:190 分类:Java
-
在本文中,我们将讨论如何使用两个方法 - getTime() 和 valueOf(),将 java.util.Date 转换为 java.sql.Date。
在 Java 日期中获取当前时间戳
发布时间:2023/08/11 浏览次数:177 分类:Java
-
这篇文章是关于获取 Java Date 中的当前时间戳的。本文介绍如何获取 Java 中的当前时间戳,并列出一些示例代码以了解该主题。
获取 Java 中的当前年份
发布时间:2023/08/11 浏览次数:145 分类:Java
-
在本文中,讨论了如何在 Java 中获取当前年份的不同方法。在 Java 中使用 java.Util.Date 类获取当前年份
Java 中 SimpleDateFormat 类中的日期格式
发布时间:2023/08/11 浏览次数:195 分类:Java
-
本文将向你展示 Java 的 SimpleDateFormat 类中可用的日期格式。Java 中 SimpleDateFormat 类中的日期格式
如何在 Java 中为日期增加一天
发布时间:2023/08/11 浏览次数:156 分类:Java
-
在本文中,我们将学习如何在 Java 中将日期增加一天。这可以通过使用各种方法来完成,例如 plusDays 方法,Calendar 类方法,向 Date 对象添加毫秒以及 Instant class 方法。如果你使用的是 Java 1.8 或
如何在 Java 中创建二维 ArrayList
发布时间:2023/08/11 浏览次数:94 分类:Java
-
在本文中,我们将介绍两个关于如何创建二维 ArrayList 的 Java 方法。在 Java 中使用固定大小的 ArrayList 创建二维 ArrayList
用 Java 创建鼠标监听器
发布时间:2023/08/10 浏览次数:145 分类:Java
-
在 Java 中,当鼠标在特定空间中移动时,MouseListener 类会收到通知。 本教程演示如何创建 MouseListener 接口。用 Java 创建鼠标监听器
在 Java 中将十六进制转换为字符串
发布时间:2023/08/10 浏览次数:95 分类:Java
-
在Java中,我们可以使用 toHexString() 方法将普通字符串转换为十六进制字符串,但是要将十六进制字符串转换为普通字符串,我们需要将每个字符串字符从十六进制转换为字符。 本教程演示如何