比较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是正确的方法吗?
答案 0 :(得分:5)
使用Java 8的LocalDate可能更好,因为Calendar也代表时间。在您的示例中,calendar1和calendar2的时间略有不同,因为您将它们设置为默认值。
如果您使用的是早期版本的Java,则可以使用Joda日期库。
最后,如果您没有实际的性能问题,请不要担心。如果您确实遇到性能问题,可以归因于日期比较(因为您对代码进行了分析),请尝试不同的方法进行比较,并对它们进行基准测试以找出最有效的方法。