比较java中两个日期的最佳方法

时间:2015-05-18 10:42:09

标签: java performance

比较java中两个日期的最佳方法是什么?

我需要为这两个日期设置日期,月份和年份,我应该比较这两个日期

我使用Calendar对象设置值

Calendar calendar1 = Calendar.getInstance();
calendar1.set(Calendar.YEAR, 2015);
calendar1.set(Calendar.MONTH, 5);
calendar1.set(Calendar.DATE, 17);

Calendar calendar2 = Calendar.getInstance();
calendar2.set(Calendar.YEAR, 2015);
calendar2.set(Calendar.MONTH, 5);
calendar2.set(Calendar.DATE, 18);

    if (calendar1.compareTo(calendar2) < 0) {
        // if calendar1 is less than calendar2
    } 

我在整个申请过程中处理了大量的比较。

对于性能,使用java.util.Calendar是正确的方法吗?

1 个答案:

答案 0 :(得分:5)

使用Java 8的LocalDate可能更好,因为Calendar也代表时间。在您的示例中,calendar1和calendar2的时间略有不同,因为您将它们设置为默认值。

如果您使用的是早期版本的Java,则可以使用Joda日期库。

最后,如果您没有实际的性能问题,请不要担心。如果您确实遇到性能问题,可以归因于日期比较(因为您对代码进行了分析),请尝试不同的方法进行比较,并对它们进行基准测试以找出最有效的方法。