Java 为什么Joda Time允许Period构造函数使用两个LocalTime,但没有这样的Duration构造函数?

Java 为什么Joda Time允许Period构造函数使用两个LocalTime,但没有这样的Duration构造函数?,java,jodatime,Java,Jodatime,为什么Joda Time允许Period构造函数使用两个LocalTime,但没有这样的Duration构造函数 我想知道,因为这可能有助于我更好地利用乔达的时间 以下是我的想法:持续时间对于不了解社会习俗的应用程序来说是好的,而缺乏意识正是它不同于周期的原因。LocalTime很适合使用,因为它没有时区。这表明持续时间应与本地时间一起使用,反之亦然。ADuration是两个精确的瞬间s之间的时间量(完全独立于人类的概念,如年、日和秒)LocalTimes表示不明确的时间点(它们需要一个日期和时

为什么Joda Time允许Period构造函数使用两个LocalTime,但没有这样的Duration构造函数

我想知道,因为这可能有助于我更好地利用乔达的时间


以下是我的想法:持续时间对于不了解社会习俗的应用程序来说是好的,而缺乏意识正是它不同于周期的原因。LocalTime很适合使用,因为它没有时区。这表明持续时间应与本地时间一起使用,反之亦然。

A
Duration
是两个精确的
瞬间
s之间的时间量(完全独立于人类的概念,如年、日和秒)<但是,code>LocalTimes表示不明确的时间点(它们需要一个日期和时区来定义
即时

可以说在两个
LocalTime
s之间有一个“标准持续时间”(假设没有DST、没有闰年、没有闰秒(Joda年表不支持),但没有足够的信息来计算“真实持续时间”。我怀疑这就是为什么
Duration
没有这个构造函数的原因

例如,假设我们有两个
LocalTimes
:一个表示凌晨1:00和凌晨4:00。99%的情况下,可以说这是一个3小时的持续时间。但是,如果它们表示夏令时切换当天的时间,则持续时间将为2小时或4小时

Period
的定义更为宽泛,在两个部分定义的时间(如
LocalTime
s)之间有一个周期是有意义的(在本例中仅为“3小时”)
Period
s很容易与标准持续时间相对应,因此可以调用
Period.toStandardDuration()