我花了几个小时试图使该下一段代码的工作。创建日期范围斯卡拉,乔达,爪哇
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