Should I use Calendar.compareTo() to compare dates?

后端 未结 6 1868
情话喂你
情话喂你 2021-02-07 08:36

Is it a valid way of comparing dates:

Calendar someCalendar1 = Calendar.getInstance(); // current date/time
someCalendar1.add(Calendar.DATE, -14);

Calendar some         


        
6条回答
  •  無奈伤痛
    2021-02-07 09:16

    It's OK. Also you can use before() and after():

    package demo.so;
    
    import java.util.Date;
    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    
    public class Tester {
    
        public static void main(String[] args) throws Exception {
    
        Calendar someCalendar1 = Calendar.getInstance(); // current date/time
        someCalendar1.add(Calendar.DATE, -11);
    
        DateFormat df = new SimpleDateFormat("MM/dd/yyyy");
        Date someDate =   df.parse("10/08/2009");
    
        Calendar someCalendar2 = Calendar.getInstance();
        someCalendar2.setTime(someDate);
    
        String cal1 = df.format(someCalendar1.getTime());
        String cal2 = df.format(someCalendar2.getTime());
    
        if (someCalendar1.equals(someCalendar2))
            System.out.println( cal1 + " is the same as " + cal2);
        if (someCalendar1.after(someCalendar2))
            System.out.println(cal1 + " is after " + cal2);
        if (someCalendar1.before(someCalendar2))
            System.out.println(cal1 + " is before " + cal2);
    
        }
    
    }
    

    But you shouldn't use Date, is deprecated and a source of troubles with dates handling. Build your own wrapper for GregorianCalendar or use some good library, like Joda.

提交回复
热议问题