Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

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";
      //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() 메서드는 날짜를 나타내는 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+" 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