Computer >> Máy Tính >  >> Lập trình >> Java

Làm thế nào để so sánh hai ngày ở định dạng chuỗi trong Java?

java.text.SimpleDateFormat lớp được sử dụng để định dạng và phân tích cú pháp một chuỗi thành ngày tháng và ngày thành chuỗi.

  • Một trong các hàm tạo của lớp này chấp nhận giá trị Chuỗi đại diện cho định dạng ngày mong muốn và tạo đối tượng SimpleDateFormat.
  • Để phân tích cú pháp / chuyển đổi một chuỗi dưới dạng đối tượng Ngày Khởi tạo lớp này bằng cách chuyển chuỗi định dạng mong muốn.
  • Phân tích cú pháp chuỗi ngày bằng phương thức parse ().
  • Ngày sử dụng lớp biểu thị một thời gian tức thì cụ thể Lớp này cung cấp nhiều phương thức khác nhau như before (), after () và, equals () để so sánh hai ngày

Ví dụ

Khi bạn tạo các đối tượng ngày từ các chuỗi, bạn có thể so sánh chúng bằng một trong các phương pháp này như được hiển thị bên dưới -

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);
      }
   }
}

Đầu ra

2007-11-25 is after 1999-9-12

Phương thức Parse () của lớp LocalDate

Phương thức parse () của lớp LocalDate chấp nhận một giá trị String đại diện cho một ngày tháng và trả về một đối tượng LocalDate.

Ví dụ

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);
       }
    }
}

Đầu ra

2007-11-25 is equal to 1999-9-12