val hm: HashMap[org.joda.time.DateTime, MyType]
を持っているセットの最初と最後のDateTime
をそれぞれhm.keys.min
とhm.keys.max
で取得しようとしていますが、コンパイラーはNo implicit Ordering defined for org.joda.time.DateTime
と言っています。この順序を定義する方法(暗黙的オプションと明示的オプションの両方が興味深い)?
object Joda {
implicit def dateTimeOrdering: Ordering[DateTime] = Ordering.fromLessThan(_ isBefore _)
}
// elsewhere
import Joda._
dateTimes.sorted
ScalaでJoda DateTimeでの作業を容易にするために、nscala-timeが作成されました: https://github.com/nscala-time/nscala-time
それをあなたのプロジェクトに含めた後
libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "1.8.0"
OrderingImplicits
をインポートするだけです。一度にすべて:
import com.github.nscala_time.time.OrderingImplicits._
または特定のもの:
import com.github.nscala_time.time.OrderingImplicits.DateTimeOrdering