この次のコードを作成するのに何時間も費やしました。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))
}
2000年から2012年までの6ヶ月単位で日付範囲の配列を設定しようとしています。私が直面している問題は、次のエラーです。
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)
私は最後のPeriod.months()部分と関係があると思われますが、修正方法はわかりません。 Tuple3エラー私には分かりません。
誰かが私に別の解決策を与えることができれば、それも素晴らしいでしょう。私は2000年から2012年までの6ヶ月ごとの日付のリストが必要です。
質問は歓迎します。私はこれがコードの共通部分だと思っていましたが、ネット上にそれほど多くはありません。
ありがとうございます。
はこれを参照してください。 。あなたはREPLの行ごとにこの行を入力していますか? 'scalac'でコンパイルしたときや、' scala'でコードをロードしたときに、scala 2.10.0とJoda Time 1.6でこれを再現することはできません。 – Brian
こんにちはブライアン、私は前にそのスレッドを見ましたが、私はそれを作るために、同じ問題を抱えている他の人々から離れて何かをよく分かりません。私はJoda Time 1.6を実行していますが、Scala 2.9.2です。今すぐ別のシステムでセットアップを試してみてください。私はscala 2.10.2を以前に試みましたが、問題はそこにあるとは思っていません。 – Loooit
同じエラーを返すそのスレッドに記載されているように、このスニペット 'val dt = new DateTime(2013,7,16)'に減らすことができます。 'java.lang.IllegalArgumentException:タイプ:scala.Tuple3 ' – Brian