Jawaban:
Dari Java SE 8 dan seterusnya, pengguna diminta untuk bermigrasi ke java.time (JSR-310). Ada upaya membuat perpustakaan scala yang membungkus java.time untuk scala seperti scala-time . Jika penargetan lebih rendah dari SE 8 gunakan salah satu di bawah ini. Juga lihat Mengapa JSR-310 bukan Joda-Time
Pembungkus Scala baru untuk Joda Time . Proyek ini bercabang dari scala-time karena tampaknya scala-time tidak lagi dipertahankan.
import com.github.nscala_time.time.Imports._
DateTime.now // returns org.joda.time.DateTime = 2009-04-27T13:25:42.659-07:00
DateTime.now.hour(2).minute(45).second(10) // returns org.joda.time.DateTime = 2009-04-27T02:45:10.313-07:00
DateTime.now + 2.months // returns org.joda.time.DateTime = 2009-06-27T13:25:59.195-07:00
DateTime.nextMonth < DateTime.now + 2.months // returns Boolean = true
DateTime.now to DateTime.tomorrow // return org.joda.time.Interval = > 2009-04-27T13:47:14.840/2009-04-28T13:47:14.840
(DateTime.now to DateTime.nextSecond).millis // returns Long = 1000
2.hours + 45.minutes + 10.seconds
// returns com.github.nscala_time.time.DurationBuilder
// (can be used as a Duration or as a Period)
(2.hours + 45.minutes + 10.seconds).millis
// returns Long = 9910000
2.months + 3.days
// returns Period
Joda Time adalah perpustakaan Java yang baik, ada perpustakaan Scala wrapper / implisit konversi yang tersedia untuk Joda Time pada scala-time yang dibuat oleh Jorge Ortiz . (Catatan implisit memiliki hit kinerja, tetapi itu tergantung pada apa yang Anda lakukan jika Anda akan melihat. Dan jika Anda mengalami masalah kinerja Anda bisa kembali ke antarmuka Joda)
Dari README:
USAGE:
import org.scala_tools.time.Imports._
DateTime.now
// returns org.joda.time.DateTime = 2009-04-27T13:25:42.659-07:00
DateTime.now.hour(2).minute(45).second(10)
// returns org.joda.time.DateTime = 2009-04-27T02:45:10.313-07:00
DateTime.now + 2.months
// returns org.joda.time.DateTime = 2009-06-27T13:25:59.195-07:00
DateTime.nextMonth < DateTime.now + 2.months
// returns Boolean = true
DateTime.now to DateTime.tomorrow
// return org.joda.time.Interval =
// 2009-04-27T13:47:14.840/2009-04-28T13:47:14.840
(DateTime.now to DateTime.nextSecond).millis
// returns Long = 1000
2.hours + 45.minutes + 10.seconds
// returns org.scala_tools.time.DurationBuilder
// (can be used as a Duration or as a Period)
(2.hours + 45.minutes + 10.seconds).millis
// returns Long = 9910000
2.months + 3.days
// returns Period
Imports
dan scala.concurrent.duration._
. Sebaliknya, gunakan JodaTime biasa dan menulis sepeda sendiri di atasnya.
Jika Anda menggunakan Java 8, maka tidak perlu digunakan nscala
lagi. Perpustakaan Joda-Time telah dipindahkan ke Java 8 di bawah java.time
paket (JSR-310). Impor saja paket itu ke proyek Scala Anda.
Tidak ada cara standar untuk bekerja dengan kurma di Scala. Opsi yang tersedia adalah:
Saya akan menghindari menggunakan java.util.Date karena masalah yang terdokumentasi dengan baik di sekitarnya.
MOTIVASI:
Perpustakaan Java Date dan Calendar sebagian besar tidak memadai. Mereka bisa berubah, tidak aman untuk benang, dan sangat tidak nyaman untuk digunakan.
Perpustakaan Joda Time adalah pengganti yang hebat untuk kelas Date dan Calendar Java. Mereka tidak dapat diubah secara default, memiliki API yang lebih kaya dan lebih bagus, dan dapat dengan mudah dikonversi ke kelas Tanggal dan Kalender Java bila perlu.
Proyek ini memberikan lapisan tipis kenyamanan di sekitar perpustakaan Joda Time, menjadikannya lebih idiomatis untuk digunakan dalam Scala.
(disalin dari https://github.com/jorgeortiz85/scala-time )