Tôi đã dành hàng giờ cố gắng để làm cho đoạn mã tiếp theo này hoạt động.Tạo một DateRange Scala, Joda, Java
import org.joda.time.{DateTime, Period}
def dateRange(from: DateTime, to: DateTime, step: Period): Iterator[DateTime] =Iterator.iterate(from)(_.plus(step)).takeWhile(!_.isAfter(to))
val range = {
dateRange(new DateTime(2012, 06, 30).minusYears(5), new DateTime(2000, 06, 30),new Period.months(6))
}
Tôi đang cố gắng thiết lập phạm vi ngày phạm vi trải qua từ năm 2000 đến năm 2012 theo gia số 6 tháng. Vấn đề mà tôi đang phải đối mặt là lỗi sau.
Exception in thread "main" java.lang.IllegalArgumentException: No instant converter found for type: scala.Tuple3
at org.joda.time.convert.ConverterManager.getInstantConverter(ConverterManager.java:165)
at org.joda.time.base.BaseDateTime.<init>(BaseDateTime.java:169)
at org.joda.time.DateTime.<init>(DateTime.java:241)
at tester.MomentumAlgo$class.$init$(MomentumAlgo.scala:154)
at tester.RunMomentumAlgo$$anon$1.<init>(RunMomentumAlgo.scala:86)
at tester.RunMomentumAlgo$.main(RunMomentumAlgo.scala:86)
at tester.RunMomentumAlgo.main(RunMomentumAlgo.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Tôi có vẻ như liên quan đến phần Period.months() cuối cùng, tuy nhiên tôi không biết cách khắc phục. Lỗi Tuple3 mà tôi không biết.
Nếu ai đó có thể cho tôi giải pháp khác, điều đó cũng sẽ tuyệt vời. Tôi muốn có một danh sách các ngày từ năm 2000 đến năm 2012, cứ sau 6 tháng.
Mọi câu hỏi đều được chào đón. Tôi nghĩ rằng đây sẽ là một đoạn mã phổ biến, nhưng không có nhiều trên mạng về nó.
Xin cảm ơn trước.
Xem này: http://www.scala-lang.org/node/6982 . Bạn có đang nhập dòng này bằng dòng trong REPL không? Tôi không thể tái tạo điều này với scala 2.10.0 và Joda Time 1.6 khi tôi biên dịch bằng 'scalac' hoặc khi tôi tải một tệp có mã trong' scala'. – Brian
Xin chào Brian, tôi đã thấy chuỗi đó trước đây, mặc dù tôi không chắc chắn nên tạo ra gì, ngoài một số người khác có cùng một vấn đề. Tôi đang chạy Joda Time 1.6, nhưng Scala 2.9.2. thử thiết lập của bạn trên một hệ thống khác ngay bây giờ. Tôi đã thử scala 2.10.2 trước đó, mặc dù tôi không nghĩ rằng vấn đề nằm ở đó. – Loooit
Sự cố có thể được giảm xuống đoạn mã này 'val dt = new DateTime (2013,7,16) 'như được ghi chú trong chuỗi đó, cung cấp cùng một lỗi' java.lang.IllegalArgumentException: Không có trình chuyển đổi tức thì nào được tìm thấy cho loại: scala.Tuple3 ' – Brian