Java 比较日期
Date类表示一个特定的时间瞬间,精度为毫秒。java.util包中的Date类实现了Serializable、Cloneable和Comparable接口。它提供了构造函数和方法来处理java中的日期和时间。
以下是在java中比较日期的方法
方法-1:使用Date.compareTo()
涉及的步骤
- 为SimpleDateFormat类创建一个对象,用yyyy-mm-dd格式初始化它。
- 使用上述对象初始化日期变量。
- 使用date类的compareTo()函数对日期进行比较。
- 打印结果
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
class GFG {
public static void main (String[] args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
Date date1 = simpleDateFormat.parse("2022-12-06");
Date date2 = simpleDateFormat.parse("2022-12-06");
System.out.println(date2.compareTo(date1));
}
}
输出
0
方法 – 2:使用Date.before(), Date.after()和Date.equals()
这个方法比第一个方法简单。
所涉及的步骤
- 为SimpleDateFormat类创建一个对象,用yyyy-mm-dd格式初始化它。
- 使用上述对象初始化日期变量。
- 使用date类的after()和before函数对日期进行比较。
- 打印结果。
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
class GFG {
public static void main (String[] args) throws ParseException {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
Date date1 = simpleDateFormat.parse("2022-12-06");
Date date2 = simpleDateFormat.parse("2022-12-05");
System.out.println(date1.before(date2));
System.out.println(date1.equals(date2));
System.out.println(date1.after(date2));
}
}
输出
false
false
true
方法 – 3: 使用Calendar.before( ) ,Calendar.after()和Calendar.equals()
涉及的步骤
- 为SimpleDateFormat类创建一个对象,用yyyy-mm-dd格式初始化它。
- 使用上述对象初始化日期变量。
- 使用getinstance()函数初始化日历类对象。
- 使用日历类的setTime()函数给日历对象赋值。
- 使用日历类的after()和before函数来进行日期的比较。
- 打印结果。
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
class GFG {
public static void main (String[] args) throws ParseException{
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-mm-dd");
Date date1 = simpleDateFormat.parse("2022-12-06");
Date date2 = simpleDateFormat.parse("2022-12-05");
Calendar calendar1 = Calendar.getInstance();
Calendar calendar2 = Calendar.getInstance();
calendar1.setTime(date1);
calendar2.setTime(date2);
System.out.println(calendar1.before(calendar2));
System.out.println(calendar1.equals(calendar2));
System.out.println(calendar1.after(calendar2));
}
}
输出
false
false
true
方法-4:使用Java 8的isBefore()、isAfter()、isEqual()和compareTo()方法 :
在Java 8中,isBefore()、isAfter()、isEqual()和compareTo()被用来比较LocalDate、LocalTime和LocalDateTime。
涉及的步骤
- 创建LocalDate类的对象。
- 使用date类的isAfter()、isBefore()和isEqual()函数来比较日期。
- 打印结果。
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
class GFG {
public static void main (String[] args) throws ParseException {
LocalDate date1 = LocalDate.now();
LocalDate date2 = date1.minusDays(1);
System.out.println(date1.isBefore(date2));
System.out.println(date1.isEqual(date2));
System.out.println(date1.isAfter(date2));
}
}
输出
false
false
true