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

Các cách khác nhau để so sánh ngày tháng trong Java là gì?

Sử dụng lớp LocalDate

java.time.LocalDate lớp đại diện cho ngày địa phương, tức là ngày không có múi giờ, bạn có thể sử dụng đối tượng này thay cho Ngày. Lớp này cung cấp nhiều phương thức khác nhau như isBefore (), isAfter () và isEqual () để so sánh hai ngày -

Ví dụ

import java.time.LocalDate;
public class Sample {
   public static void main(String args[]) {  
      LocalDate date1 = LocalDate.of(2007, 11, 25);
      LocalDate date2 = LocalDate.of(1999, 9, 12);      
      Boolean bool1 = date1.isAfter(date2);  
      Boolean bool2 = date1.isBefore(date2);
      Boolean bool3 = date1.isEqual(date2);
      if(bool1){
         System.out.println(date1+" is after "+date2);
      }else if(bool2){
         System.out.println(date1+" is before "+date2);
      }else if(bool3){
          System.out.println(date1+" is equla to "+date2);
      }
   }
}

Đầu ra

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

Sử dụng lớp Ngày

java.util.Date lớp đại diện cho 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ụ

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.Date;
public class Sample {
   public static void main(String args[]) throws ParseException {  
      SimpleDateFormat formatter = new SimpleDateFormat("yyyy-dd-MM");      
      //Parsing the given String to Date object
      Date date1 = formatter.parse("2007-11-25");  
      Date date2 = formatter.parse("1999-9-12");      
      Boolean bool1 = date1.after(date2);  
      Boolean bool2 = date1.before(date2);
      Boolean bool3 = date1.equals(date2);
      if(bool1){
         System.out.println(date1+" is after "+date2);
      }else if(bool2){
         System.out.println(date1+" is before "+date2);
      }else if(bool3){
          System.out.println(date1+" is equals to "+date2);
      }
   }
}

Đầu ra

Sun Jan 11 00:00:00 IST 2009 is after Thu Dec 09 00:00:00 IST 1999

Sử dụng lớp Lịch

Tương tự như lớp Ngày, lớp Lịch 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ụ

import java.util.Calendar;
public class Sample {
   public static void main(String args[]) {  
      Calendar obj1 = Calendar.getInstance();
      obj1.set(2007, 11, 25);      
      Calendar obj2 = Calendar.getInstance();
      obj2.set(1999, 9, 15);
      Boolean bool1 = obj1.after(obj2);  
      Boolean bool2 = obj1.before(obj2);
      Boolean bool3 = obj1.equals(obj2);
      if(bool1){
         System.out.println(obj1+" is after "+obj2);
      }else if(bool2){
         System.out.println(obj1+" is before "+obj2);
      }else if(bool3){
          System.out.println(obj1+" is equla to "+obj2);
      }
   }
}

Đầu ra

java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=7,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2007,MONTH=11,WEEK_OF_YEAR=45,WEEK_OF_MONTH=1,DAY_OF_MONTH=25,DAY_OF_YEAR=312,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=33,SECOND=47,MILLISECOND=366,ZONE_OFFSET=19800000,DST_OFFSET=0] is after java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Calcutta",offset=19800000,dstSavings=0,useDaylight=false,transitions=7,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=1999,MONTH=9,WEEK_OF_YEAR=45,WEEK_OF_MONTH=1,DAY_OF_MONTH=15,DAY_OF_YEAR=312,DAY_OF_WEEK=7,DAY_OF_WEEK_IN_MONTH=1,AM_PM=1,HOUR=9,HOUR_OF_DAY=21,MINUTE=33,SECOND=47,MILLISECOND=392,ZONE_OFFSET=19800000,DST_OFFSET=0]