在 play Scala 中使用 joda 时间
Using joda time in play Scala
我写了下一个 Scala 函数:
def compareBeforeDateTimes(d1: String, d2: String)
{
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
DateTime dt1 = formatter.parseDateTime(d1)
DateTime dt2 = formatter.parseDateTime(d2)
return dt1 < dt2
}
在我的 Scala 代码的开头,我写道:
import org.joda.time.{Period, DateTime}
import org.joda.time.format.{DateTimeFormat}
import org.joda.time.format.{DateTimeFormatter}
然而,如果我编译我的代码,我会得到错误:
value formatter is not a member of object org.joda.time.format.DateTimeFormatter
有什么想法吗?
这不是 Scala 中声明变量的方式。
应该是
val formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
请注意,您可以关闭类型声明,因为它是推断的。如果你真的想也声明类型,那就是
val formatter: DateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
这与函数参数中的语法相同(它们已经正确了)。
我写了下一个 Scala 函数:
def compareBeforeDateTimes(d1: String, d2: String)
{
DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
DateTime dt1 = formatter.parseDateTime(d1)
DateTime dt2 = formatter.parseDateTime(d2)
return dt1 < dt2
}
在我的 Scala 代码的开头,我写道:
import org.joda.time.{Period, DateTime}
import org.joda.time.format.{DateTimeFormat}
import org.joda.time.format.{DateTimeFormatter}
然而,如果我编译我的代码,我会得到错误:
value formatter is not a member of object org.joda.time.format.DateTimeFormatter
有什么想法吗?
这不是 Scala 中声明变量的方式。
应该是
val formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
请注意,您可以关闭类型声明,因为它是推断的。如果你真的想也声明类型,那就是
val formatter: DateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss")
这与函数参数中的语法相同(它们已经正确了)。