java - 我应该使用 Calendar.compareTo() 来比较日期吗?

标签 java date calendar

这是比较日期的有效方法吗:

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

Calendar someCalendar2 = Calendar.getInstance();
someCalendar2.setTime(someDate); // someDate is in the format of MM/dd/yyyy

if(someCalendar2.compareTo(someCalendar1) < 0){
   ...Code...               
}

...或者有更好的方法吗?

最佳答案

Date实现可比较本身,因此没有理由将其包装到日历中:

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

if (someDate.compareTo(someCalendar1.getTime()) < 0) {
   ...Code...                           
}

日期也有方便after()before()使上述比较更易于阅读的方法:

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

最后,如果您经常处理日期/时间,请考虑使用 Joda Time而不是内置的java类。它更加方便和实用:

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

关于java - 我应该使用 Calendar.compareTo() 来比较日期吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1505496/

相关文章:

java - 如何将 SimpleDateFormat 与日历一起使用?

java - 将 01/01/0001 日期作为星期一是否正确?

java - Java中从url解析JSON

java string.split() 问题

Java 线程 : How to print alphabets and numbers using two threads one at a time

java - 带有 JUnit 临时文件夹的 Spring Config

java - ZonedDateTime 比较 : expected: [Etc/UTC] but was: [UTC]

java - 将 'Web, 28 Aug 2014 15:47' 格式的日期转换为正确的格式

PHP Date - 时差格式化

css - 如何在 ionic 中实现自定义日历?