Scala 中的日期时间格式混乱

DateTime formatting confusion in Scala

所以我在 .csv 文件中有以下数据(这只是前几行)-

time                  temp
2015-08-14 00:00:05   30.00
2015-08-14 00:00:15   31.25
2015-08-14 00:00:25   33.45
2015-08-14 00:00:35   34.76
2015-08-14 00:00:45   36.43

然后我创建以下案例 class -

scala> case class Temps(time: org.joda.time.format.DateTimeFormat, temp: String)

然后我打算通过创建解析函数来创建一个 RDD

scala> def parse(line: String) = {
       val data = line.split(',')
       val time = data(0).????
       val temp= data(1).toString
       Temps(time, temp)
       }

所以我的问题是,我应该把什么放在 ???在上面?我不完全确定如何在这种情况下设置 DateTime 的格式。

首先,对于你的 Tempstime type 应该是:org.joda.time.DateTimeDateTimeFormat 是一个 factory 用于创建DateTimeFormatter(这是用来格式化时间的)。

其次,可以使用DateTimeFormatter.parseDateTimeparse日期stringDateTime

所以这段代码可能应该是:

 case class Temps(time: DateTime, temp: String)

 val dateTimeFormatter = DateTimeFormat.forPattern("yyyy-mm-dd HH:mm:ss")
 def parse(line: String) = {
       val data = line.split(',')
       val time = dateTimeFormatter.parseDateTime(data(0))
       val temp= data(1).toString
       Temps(time, temp)
 }