Period ofget.getMillis Joda Time возвращает неточное число - PullRequest
2 голосов
/ 07 марта 2012

Я столкнулся со странной проблемой с классом JodaTime's Period.Я подошел к моменту, когда я создал экземпляр объекта Period, который печатается как: PT8M19.966S, в котором четко указано 8 минут и 19 секунд (на данный момент это правильно), и я вызываю Period.toMillis.В результате я получаю случайное число, такое как 968 или 152, числа, которые явно не являются тем, что этот метод должен возвращать.Поэтому мне интересно, если это какая-то ошибка или неправильное использование с моей стороны.

Ответы [ 2 ]

7 голосов
/ 07 марта 2012

Вы имеете в виду getMillis()? Javadoc сообщает, что возвращает только миллисекундную часть периода, а не продолжительность периода в миллисекундах.

1 голос
/ 11 января 2013

Как предложил Луи выше, вы должны сначала преобразовать Period в Duration, а затем получить его миллисекунды:

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

Основная причина этого в том, что ReadablePeriod точно не знает, сколько миллисекунд у него внутри, пока вы не примените его к календарю. Например, сколько миллисекунд в одном месяце? Мы не можем получить ответ, пока этот месяц не будет применен к календарю.

...