mik*_*kej 244
需要3个类,因为它们代表不同的概念,因此需要选择适当的工作而不是相对性能.来自我用斜体添加的评论的文档:
的间隔在约达时间表示时间从一毫秒时刻到另一时刻的间隔.两个时刻都是日期时间连续体中的完全指定的时刻,并带有时区.具体时间定义为例如,这可能是昨天20:00:00GMT和今天早上09:00:00GTT之间的间隔.
甲持续时间在约达时间表示以毫秒计的时间的持续时间.持续时间通常从间隔获得.即我们可以从间隔的末尾开始减去以得出持续时间
甲期间在约达时间表示一段时间中的字段来定义,例如,3年5月2天及7小时.这与持续时间的不同之处在于它以毫秒为单位是不精确的.通过指定相对于的时刻(包括时间顺序和时区),只能将句点解析为精确的毫秒数.例如,考虑1年的时间,如果我们将其添加到1月1日,我们将始终在1月1日到达,但持续时间将取决于干预年是否是闰年.同样地,如果我们将1个月添加到1个月的第1个月,那么我们将在下个月的第1个月到达,但持续时间(以毫秒为单位)将根据所讨论的月份而变化
对于问题3,实际上并不需要一种划分持续时间的特定方法,因为我们总是可以从持续时间获得毫秒数long(使用getMillis()),除以它并构造一个新的持续时间(使用new Duration(long duration)).
根据上述时期的定义,划分一个时期并不具有真正的意义.比如半个月呢?(其长度取决于哪个月).
leo*_*loy 88
要添加到mikej的答案:
甲约达时间 的持续时间是"物理"的时间间隔; 例如:
12000 milliseconds < - 这是一段持续时间
Joda-Time 间隔实际上是一对瞬间(开始即时 - 结束瞬间).一个瞬间是,再次,"物理"的概念,在时间线中的一个点.例如(只是一种可能的表示法):
(2010/3/3 19:00:00.000 UTC ; 2010/3/3 20:00:00.000 UTC) < - 这是一个间隔
的间隔,然后,可以被转换成一个持续时间,而不是相反.
考虑这两个区间:
I1=(2010/3/3 19:00:00.000 UTC ; 2010/3/3 20:00:00.000 UTC)
I2=(2010/3/3 21:00:00.000 UTC ; 2010/3/3 22:00:00.000 UTC)
作为间隔,I1并且I2是不同的,因为终点是不同的; 但如果我将它们转换为持续时间,我会得到同样的结果:3600000 milliseconds.
(数学类比:区间[10,12]和[95,97]不同的区间,但它们具有相同的长度:"区间长度"映射到持续时间).
最后,一段时间是"民用时间"的流逝,表示为数月,日,小时等.它本身不代表"物理"间隔,因此不能直接转换为持续时间(月份有不同的长度......).
这回答了问题3:你只能将物理时间(持续时间)除以2.
| 归档时间: |
|
| 查看次数: |
66070 次 |
| 最近记录: |