2012-01-30 15 views
37

Po Próbuję uzyskać pierwszy i ostatni DateTime zestawu za pomocą odpowiednio hm.keys.min i hm.keys.max, ale kompilator mówi No implicit Ordering defined for org.joda.time.DateTime. Jak zdefiniować to porządkowanie (interesujące są zarówno opcje jawne, jak i jawne)?Jak zdefiniować zamówienie w Scali?

Odpowiedz

95
object Joda { 
    implicit def dateTimeOrdering: Ordering[DateTime] = Ordering.fromLessThan(_ isBefore _) 
} 

// elsewhere 
import Joda._ 
dateTimes.sorted 
14

Aby ułatwić pracę z Joda DateTime w Scala, nscala czasie powstał: https://github.com/nscala-time/nscala-time

Po tym go w swoim projekcie z

libraryDependencies += "com.github.nscala-time" %% "nscala-time" % "1.8.0" 

można po prostu importować OrderingImplicits. Albo wszystko naraz:

import com.github.nscala_time.time.OrderingImplicits._ 

lub konkretny jeden:

import com.github.nscala_time.time.OrderingImplicits.DateTimeOrdering