【发布时间】:2018-07-20 05:54:44
【问题描述】:
我是 Scala 的新手,我一直在尝试将 JSON 字符串解析为时间戳(长类型)。我不断收到以下错误“单位不符合预期的 Long 类型”,我不知道为什么
import java.sql.Timestamp
import java.text.SimpleDateFormat
import java.util.Date
val dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
var timestamp: Timestamp = new Timestamp(0)
var parsedDate: Date = new Date()
var dateString: String = ""
var timestampLong: Long = 0
def extractAscendingTimestamp(element: String): Long = {
implicit val formats = org.json4s.DefaultFormats
dateString = parse(element).extract[SheetFedRecord].begin
try {
parsedDate = dateFormat.parse(dateString)
timestamp = new Timestamp(parsedDate.getTime)
timestampLong = timestamp.getTime.asInstanceOf[Long]
}
catch {
case e: Exception => 0.asInstanceOf[Long]
}
}
在 try 和 catch 中,我都给方法一个“长”变量来返回。有人可以帮忙吗?
【问题讨论】:
-
尽可能使用 val 而不是 var。据我了解您的逻辑 parsedDate,dateString 可以是函数 extractAscendingTimestamp 内的 val。 timestampLong 不是必需的,您可以只返回最后一条语句 timestamp.getTime.asInstanceOf[Long]
-
在这种情况下,Scala 不鼓励使用
var套件