如何在 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

更新于: 2021 年 2 月 6 日

7K+ 浏览次数

启动您的职业

通过完成课程来获取认证

立即开始
广告