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

后端 未结 6 1880
情话喂你
情话喂你 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:28

    Date implements comparable itself so there's no reason to wrap it into calendar:

    Calendar someCalendar1 = Calendar.getInstance(); // current date/time
    someCalendar1.add(Calendar.DATE, -14);
    
    if (someDate.compareTo(someCalendar1.getTime()) < 0) {
       ...Code...                           
    }
    

    Date also has convenient after() and before() methods that make the above comparison easier to read:

    if (someDate.before(someCalendar1.getTime())) {
       ...Code...                           
    }
    

    Finally, if you're dealing with date / time a lot, do consider using Joda Time instead of built-in java classes. It's MUCH more convenient and functional:

    DateTime dt = new DateTime().minusWeeks(2);
    if (new DateTime(someDate).isBefore(dt)) {
       ...Code...                           
    }
    

提交回复
热议问题