Java joda期间返回0个月

Java joda期间返回0个月,java,scala,datetime,jodatime,Java,Scala,Datetime,Jodatime,我有2个joda.DateTimes,用于创建持续时间。然后将持续时间转换为期间,尽管这两个日期相隔3年,但期间.getDays、期间.getMonths和期间.getYears都返回0。为什么? 来自Scala REPL的示例,但应该易于理解/转换为Java(如果需要,我可以转换) 你的电话是: 使用标准时段类型和ISO年表将此持续时间转换为时段实例 将仅使用句点类型中的精确字段。因此,将仅使用周期上的小时、分钟、秒和毫秒字段。不会填充年、月、周和日字段 Duration不“知道”它的开始点和

我有2个
joda.DateTime
s,用于创建
持续时间。然后将
持续时间
转换为
期间
,尽管这两个日期相隔3年,但
期间.getDays
期间.getMonths
期间.getYears
都返回0。为什么?

来自Scala REPL的示例,但应该易于理解/转换为Java(如果需要,我可以转换)

你的电话是:

使用标准时段类型和ISO年表将此持续时间转换为时段实例

将仅使用句点类型中的精确字段。因此,将仅使用周期上的小时、分钟、秒和毫秒字段。不会填充年、月、周和日字段

Duration
不“知道”它的开始点和结束点,所以不能期望填充可变长度值,如月份

要获取
开始
结束
之间的时间段,只需使用:

new Period(start, end)
。。。可能使用
PeriodType
来说明您需要哪些单位。

您正在呼叫:

使用标准时段类型和ISO年表将此持续时间转换为时段实例

将仅使用句点类型中的精确字段。因此,将仅使用周期上的小时、分钟、秒和毫秒字段。不会填充年、月、周和日字段

Duration
不“知道”它的开始点和结束点,所以不能期望填充可变长度值,如月份

要获取
开始
结束
之间的时间段,只需使用:

new Period(start, end)

。。。可能使用
PeriodType
来说明您需要哪些单位。

TopPeriod
的javadoc说明了什么?TopPeriod的javadoc说明了什么?我没有读取
TopPeriod
方法的javadoc失败。另外,从不将月份视为可变长度,会导致total sentemy在不读取
.toPeriod
方法的javadoc时失败。而且,从来没有想过月是可变长度的,所以总的月数