我在Scala中使用Java的java.util.Date类,希望比较Date对象和当前时间.我知道我可以使用getTime()计算增量:

(new java.util.Date()).getTime() - oldDate.getTime()

然而,这只给我留下了long毫秒.有没有更简单、更好的方法来获取时间增量?

推荐答案

不幸的是,JDK Date API严重损坏.我建议使用Joda Time library.

Joda Time有一个时间Interval的概念:

Interval interval = new Interval(oldTime, new Instant());

编辑:顺便说一下,Joda有两个概念:Interval表示两个时刻之间的时间间隔(表示上午8点到10点之间的时间),Duration表示没有实际时间界限的时间长度(例如,表示两个小时!)

如果您只关心时间比较,那么大多数Date实现(包括JDK实现)都实现了Comparable接口,这允许您使用Comparable.compareTo()

Java相关问答推荐

当耗时的代码完成时,Circular ProgressIndicator显示得太晚

表格栏上的事件过滤器在PFA中不起作用

我可以在regex中的字符类中放置断言吗?

转换为Biggram

为什么我们仍然需要实现noArgsConstructor如果Java默认提供一个非参数化的构造函数?''

Java .类参数不通过构造函数传递

XPages-在第二次点击按钮之前延迟

为什么使用JDK21获取锁定锁比使用JDK11慢

通过移动一个类解决了潜在的StubbingProblem.它怎麽工作?

使用UTC时区将startDatetime转换为本地时间

Java中不兼容的泛型类型

如何在Java中为thunk创建映射器函数

一对多关系和ID生成

Spring Validator批注不起作用

在ECLIPSE上的M1 Pro上运行JavaFX的问题

我们可以在方法中声明接口吗?

HBox内部的左对齐按钮(如果重要的话,在页码内)

Java中的一个错误';s stdlib SocksSocketImpl?

如何用Micrometer&;斯普肯

移动二维数组的行