Joda Time's Period.getMillis 返回不准确的数字



我在JodaTime的Period类中遇到了一个奇怪的问题。我已经实例化了一个Period对象,它被打印为:PT8M19.966S,它清楚地表示8分19秒(这在这一点上是正确的),然后我调用Period.toMillis。我得到的结果是一些随机数,比如968或152,这些数字显然不是这个方法应该返回的。所以我想知道这是不是某种bug,或者是我这边的误用。

你是说getMillis()?javadoc表示,它只返回周期的毫秒部分,而不是以毫秒为单位的周期持续时间。

正如Louis上面所建议的,您应该首先将Period转换为Duration,然后获得其毫秒数:

long millis = period.toStandardDuration().getMillis();

主要原因是ReadablePeriod不知道它到底有多少毫秒,直到你把它应用到日历上。例如,一个月有多少毫秒?在将本月应用于日历之前,我们无法得到答案。

最新更新