我应该使用Calendar.compareTo()来比较日期吗? [英] Should I use Calendar.compareTo() to compare dates?

查看:150
本文介绍了我应该使用Calendar.compareTo()来比较日期吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Is it a valid way of comparing dates:

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...               
}

...还是有更好的方法?

...or is there a better approach?

推荐答案

Date 实现了可比性,所以没有理由将其包装到日历中:

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...                           
}

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

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

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

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

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...                           
}

这篇关于我应该使用Calendar.compareTo()来比较日期吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆