вычитание DateTime из DateTime в scala

Я относительно новичок в 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 - лучший способ понять разницу. Есть ли способ лучше?

Другой побочный вопрос: когда часы, минуты или секунды представляют собой однозначные числа, результирующая строка не заполняется нулями. Есть ли простой способ сделать эту строку похожей на ЧЧ: ММ: СС?

Спасибо, Джон

6
задан Arjan Blokzijl 25 November 2010 в 05:39
поделиться