Joda-Time:Period,Interval和Duration有什么区别?

在Joda-Time 2中,三种时间跨度之间有什么区别:

  • 间隔
  • 持续时间

    1. 为什么我们需要三堂课?

    2. 哪一个表现更好?

    3. 为什么不实现对Period,Duration或Interval实例的 划分 ?例如p = p.divideBy(2);

回答:

需要3个类,因为它们表示不同的概念,因此,选择适合工作的类而不是相对性能是一个问题。从文档中,我用 斜体 添加了注释:


的 在约达时间表示时间从一个毫秒时刻到另一时刻的间隔。这两个时刻都是日期时间连续体中完全指定的时刻,并带有时区。

定义了特定时间,例如,这可能是昨天20:00:00GMT和今天早上09:00:00GMT之间的时间间隔。

甲 在约达时间表示以毫秒计的时间的持续时间。持续时间通常是从一个间隔中获得的。 即我们可以从间隔结束处减去开始以得出持续时间

在约达时间表示一段时间中的字段来定义,例如,3年5月2天及7小时。这与持续时间的不同之处在于,它以毫秒为单位不精确。通过指定相对的瞬间(包括时间和时区),只能将一个时期解析为精确的毫秒数。

例如,考虑一年的期限,如果将其添加到1月1日,我们将始终到达下一个1月1日,但是持续时间取决于中间年份是否为a年。

同样,如果我们在一个月的1号加上1个月,那么我们将在下个月的1号到达,但是持续时间(以毫秒为单位)将根据相关月份而有所不同


对于问题3,确实没有必要使用特定的方法来划分持续时间,因为我们总是可以从持续时间中获取毫秒数long(使用getMillis()),对其进行划分并构造新的持续时间(使用new

Duration(long duration))。

根据上述期间的定义,划分期间实际上并没有真正的意义。例如,半个月是什么?(其长度取决于哪个月)。

以上是 Joda-Time:Period,Interval和Duration有什么区别? 的全部内容, 来源链接: utcz.com/qa/431817.html

回到顶部