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