我遇到了JodaTime的Period类的一个奇怪的问题。我来到了我已经实例化了一个Period对象的点,它打印为:PT8M19.966S,清楚地说8分19秒(此时这是正确的),我调用Period.toMillis。我得到的结果是一些随机数,例如968或152,这些数字显然不是这个方法应该返回的数字。所以我想知道它是否是某种错误,或者是我身边的误用。
答案 0 :(得分:7)
你的意思是getMillis()
? javadoc表示它只返回句点的毫秒部分,而不是句点的持续时间(以毫秒为单位)。
答案 1 :(得分:1)
正如路易斯上面所建议的那样,您应首先将Period
转换为Duration
,然后再获取其毫秒数:
long millis = period.toStandardDuration().getMillis();
主要原因是ReadablePeriod
在将日历应用到日历之前不确切知道它内部有多少毫秒。例如,一个月内有多少毫秒?在将本月应用于日历之前,我们无法得到答案。