如何在 Java 中比较两个字符串格式的日期?
java.text.SimpleDateFormat 用于将字符串格式化为日期,以及将日期格式化为字符串。
- 该类的构造函数之一接受一个表示所需日期格式的字符串值,并创建SimpleDateFormat 对象。
- 将字符串解析/转换为日期对象,请通过传递所需格式的字符串来实例化该类。
- 使用 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"; //Parsing the given String to Date object 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+" is after "+dateStr2); }else if(bool2){ System.out.println(dateStr1+" is before "+dateStr2); }else if(bool3){ System.out.println(dateStr1+" is equals to "+dateStr2); } } }
输出
2007-11-25 is after 1999-9-12
LocalDate 类中的 Parse() 方法
LocalDate 类中的 parse() 方法接受表示日期的字符串值并返回 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+" is after "+dateStr2); }else if(bool2){ System.out.println(dateStr1+" is before "+dateStr2); }else if(bool3){ System.out.println(dateStr1+" is equal to "+dateStr2); } } }
输出
2007-11-25 is equal to 1999-9-12
广告