Yanıtlar:
Java SE 8'den itibaren, kullanıcıların java.time (JSR-310) sürümüne geçmeleri istenir. Skala zamanı gibi skala için java.time'ı saran skala kitaplıkları oluşturma çabaları vardır . SE 8'den düşük hedefleme varsa aşağıdakilerden birini kullanın. Ayrıca bkz.JSR-310 neden Joda-Time değildir
Joda Time için yeni bir Scala sarıcı . Bu proje, skala süresinin artık korunmadığı için skala zamanından çatallandı.
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 Zaman iyi Java kütüphanesidir en Joda Time için Scala sarıcı / örtük dönüştürme kütüphanesi DAİREMİZ vardır Scala-zaman yarattığı Jorge Ortiz . (Not etkilerinin performans isabeti vardır, ancak fark ederseniz ne yaptığınıza bağlıdır. Bir performans sorunuyla karşılaşırsanız, Joda arayüzüne geri dönebilirsiniz)
README'den:
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
ve ile sorunu anlayamıyorum scala.concurrent.duration._
. Bunun yerine düz JodaTime kullanıldı ve üzerine kendi bisikletleri yazdı.
Java 8 kullanıyorsanız, nscala
artık kullanmaya gerek yoktur . Joda-Time kütüphanesi Java JS-8 java.time
(JSR-310) paketi altında taşındı Bu paketi Scala projenize aktarın.
Scala'da tarihlerle çalışmanın standart bir yolu yoktur . Mevcut seçenekler:
Onu çevreleyen iyi belgelenmiş sorunları nedeniyle java.util.Date kullanmaktan kaçınır.
MOTİVASYON:
Java Date ve Calendar kitaplıkları büyük ölçüde yetersizdir. Değişken, iplik güvenli değil ve kullanımı çok rahatsız edici.
Joda Time kütüphanesi, Java'nın Tarih ve Takvim sınıflarının yerini almıştır. Varsayılan olarak değiştirilemezler, çok daha zengin ve daha güzel bir API'ye sahiptirler ve gerektiğinde kolayca Java'nın Tarih ve Takvim sınıflarına dönüştürülebilirler.
Bu proje, Joda Time kütüphaneleri çevresinde ince bir rahatlık katmanı sunarak Scala'da daha deyimsel bir kullanım sağlıyor.
( https://github.com/jorgeortiz85/scala-time adresinden kopyalandı )