如何在Java中比较字符串格式的两个日期?
java.text.SimpleDateFormat中的 类用于格式化和解析字符串到日期和日期字符串。
此类的构造函数之一接受表示所需日期格式的String值并创建SimpleDateFormat对象。
将字符串解析/转换为Date对象通过传递所需的格式字符串实例化此类。
使用parse()方法解析日期字符串。
util.Date类表示特定的即时时间该类提供了before()、after()和equals()等各种方法来比较两个日期。
示例
从字符串创建日期对象后,您可以使用以下任一方法比较它们,如下所示-
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Demo {
public static void main(String args[])throws ParseException {
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-dd-MM");
String dateStr1 = "2007-11-25";
String dateStr2 = "1999-9-12";
//将给定的字符串解析为日期对象
Date date1 = formatter.parse(dateStr1);
Date date2 = formatter.parse(dateStr2);
Boolean bool1 = date1.after(date2);
Boolean bool2 = date1.before(date2);
Boolean bool3 = date1.equals(date2);
if(bool1){
System.out.println(dateStr1+" 是在之后 "+dateStr2);
}else if(bool2){
System.out.println(dateStr1+" 是之前 "+dateStr2);
}else if(bool3){
System.out.println(dateStr1+" 等于 "+dateStr2);
}
}
}输出结果
2007-11-25 是在之后 1999-9-12
Parse()LocalDate类的方法
parse()LocalDate类的方法接受一个表示日期的String值并返回一个LocalDate对象。
示例
import java.time.LocalDate;
public class Test {
public static void main(String args[]){
String dateStr1 = "2007-11-25";
String dateStr2 = "1999-9-12";
LocalDate date1 = LocalDate.parse(dateStr1);
LocalDate date2 = LocalDate.parse(dateStr1);
Boolean bool1 = date1.isAfter(date2);
Boolean bool2 = date1.isBefore(date2);
Boolean bool3 = date1.isEqual(date2);
if(bool1){
System.out.println(dateStr1+" 是在之后 "+dateStr2);
}else if(bool2){
System.out.println(dateStr1+" 是之前 "+dateStr2);
}else if(bool3){
System.out.println(dateStr1+" 等于 "+dateStr2);
}
}
}输出结果
2007-11-25 等于 1999-9-12