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