我花了幾個小時試圖使該下一段代碼的工作。創建日期範圍斯卡拉,喬達,爪哇
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個月一次。
任何疑問歡迎。我認爲這將是一段常見的代碼,但網絡上並沒有太多關於它的內容。
在此先感謝。
看到這個:http://www.scala-lang.org/node/6982 。您是否在REPL中逐行輸入此行?當我用'scalac'編譯時,或者當我用'scala'中的代碼加載一個文件時,我無法用scala 2.10.0和Joda Time 1.6重現這一點。 – Brian
嗨,布賴恩,我看過那個線程,雖然我不知道該怎麼做,除了一些其他人有同樣的問題。我正在運行喬達時間1.6,但斯卡拉2.9.2。現在嘗試在不同的系統上進行設置。我以前試過scala 2.10.2,雖然我不認爲問題在那裏。 – Loooit
這個問題可以簡化爲這個代碼片段val dt = new DateTime(2013,7,16)'''''''''''''''''''''''''''''''''''' ' – Brian