【发布时间】:2011-10-10 15:43:57
【问题描述】:
在代码块中寻找一些微妙的、烦人的错误。
此代码提供了一个日历实例,该实例是在某个事件开始时创建的。我们需要确定这个事件是否存在一个小时。
我知道有几种方法可以做到这一点:
- 使用 JodaTime 并计算持续时间
- 将给定日历与一小时前创建的新日历进行比较
- 将给定的 Calendar.getTime 与一小时前创建的日期进行比较
这些方法中的每一个都有自己的怪癖,并且似乎有代码味道。在 Java 中是否有一种简单、简洁的方式来表达“从现在到一小时前发生的事情”?
当我对此进行单元测试时,我会检查:
- 45 分钟前(真实)
- 61 分钟前(假)
- 0 分钟前(真实)
- -1 分钟前(错误还是正确?)
【问题讨论】:
-
您可以在给定当前时间的情况下创建一个日历,将其回滚一小时,然后使用日历的
compareTo方法 - 未尝试但可能有效。
标签: java date time comparison