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

以上是 如何在Java中比较字符串格式的两个日期? 的全部内容, 来源链接: utcz.com/z/322878.html

回到顶部