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

标签 java performance

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

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

我正在使用日历对象来设置值

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 是正确的方法吗?

最佳答案

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

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

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

关于java - 在java中比较两个日期的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30301065/

相关文章:

java - 是否有包含/不包含时间间隔结束的标准?

java - 从字符串到整数的映射——各种方法的性能

java - 如果第一个为真,则执行逻辑或忽略第二个语句

java - TCP 文件传输问题

python - 为什么在 Python 中返回元组比返回多个值更快?

javascript - 将对象键从蛇形大小写转换为驼峰大小写的最佳方式是什么,反之亦然?

java - 说到gamedev中的性能,Java比Qt好吗?

javascript - map()、reduce() 和 filter 与 forEach()

java - toast 未显示

java - 为什么 Jackson ObjectMapper 在将 JSON 字段转换为 Date 对象时出现此错误?无法从 String 反序列化 java.util.Date 类型的值