Я относительно новичок в scala и jodatime, но оба они меня очень впечатлили. Я пытаюсь выяснить, есть ли более элегантный способ выполнить арифметику даты. Вот метод:
private def calcDuration() : String = {
val p = new Period(calcCloseTime.toInstant.getMillis - calcOpenTime.toInstant.getMillis)
val s : String = p.getHours.toString + ":" + p.getMinutes.toString +
":" + p.getSeconds.toString
return s
}
Я конвертирую все в строку, потому что я помещаю это в MongoDB и не знаю, как сериализовать joda Duration или Period. Если кто-то это знает, я был бы очень признателен за ответ.
В любом случае методы calcCloseTime и calcOpenTime возвращают объекты DateTime. Преобразование их в Instant - лучший способ понять разницу. Есть ли способ лучше?
Другой побочный вопрос: когда часы, минуты или секунды представляют собой однозначные числа, результирующая строка не заполняется нулями. Есть ли простой способ сделать эту строку похожей на ЧЧ: ММ: СС?
Спасибо, Джон