Joda-Time: what's the difference between Period, Interval and Duration?

前端 未结 2 652
既然无缘
既然无缘 2020-11-27 09:08

In Joda-Time 2, what is the difference between the three kinds of time spans:

  • Period
  • Interval
  • Duration

    1. Why do we need th

2条回答
  •  南方客
    南方客 (楼主)
    2020-11-27 09:54

    To add to mikej's answer:

    A Joda-Time duration is a "physical" time interval; eg:

    12000 milliseconds <-- this is a duration

    A Joda-Time interval is actually a pair of instants (start instant - end instant). An instant is, again, a "physical" concept, a point in the timeline. Eg (just a possible notation):

    (2010/3/3 19:00:00.000 UTC ; 2010/3/3 20:00:00.000 UTC) <-- this is an interval

    An interval, then, can be converted to a duration, but not the reverse.

    Consider these two intervals:

    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)

    As intervals, I1 and I2 are different, because the end-points are different; but if I convert them to durations, I get the same thing: 3600000 milliseconds.

    (Math analogy: the intervals [10,12] and [95,97] are different intervals, but they have the same length: "interval length" maps to duration).

    Finally, a period is a lapse of "civil time", expressed as a number of months, days, hours, etc. It does not -by itself- represent a "physical" interval, hence it can't be directly converted to a duration (months have variable lengths...).

    This answers question 3: you can only divide by two a physical time (a duration).

提交回复
热议问题