Scala字符串到日期的转换

马铃薯辛格

我有一个日期的字符串格式,但来自csv文件:20200520T0200,假设其格式为(yyyyMMdd / T / 24-hour格式)。

我已经设法读取csv文件中的行,并将其分离到arraybuffer中。

我的问题是我无法将字符串格式化为日期,因为我需要使用日期来计算一些值。因为我将使用此格式化程序来格式化我的arraybuffer的第一个元素的所有值,这是字符串“ 20200406T0300等,等等,等等”的时间。

目前,我已经尝试使用DateTimeFormatter,

CSV文件导入java.io.File

import scala.io.Source
import scala.collection.mutable.ArrayBuffer
import java.time._
import java.time.format.DateTimeFormatter

val dtf = DateTimeFormatter.ofPattern("yyyyMMddaH")
val date_int_format = DateTimeFormatter.ofPattern("yyyyMMdd")
val last_extract_value= "20200530T0200"
val string_to_date = dtf.parse(last_extract_value)


val rows = ArrayBuffer[Array[String]]()

val bufferedSource = Source.fromFile("D:/Scala/Testtt/src/main/scala/testData.csv")
for (line <- bufferedSource.getLines.drop(10)) {
  rows += line.split(",").map(_.trim)

}
for (row <- rows) {
  println(s"${row(0)}|${row(1)}")
}
正弦

我认为这不是标准的DateTime格式,有人删除或添加了一些内容。看起来像ISO DATEISO格式正确yyyy-MM-ddTHH:mm ...

编辑:@ OleV.V。请明确说明该格式是ISO 8601格式的基本形式

您有几种选择

  1. 要么摆脱那个T和解析 SimpleDateTimeFormat

    val format = new SimpleDateFormat(“ yyyyMMddHHmm”)val f = format.parse(“ 20200520T0200” .replaceAll(“ T”,“”))// WMT May 20 02:00:00 GMT 2020

  2. 或定义一个自定义格式化程序,并将其解析为time object您的浮动内容。

    val customFormatter = DateTimeFormatter.ofPattern(“ yyyyMMdd'T'HHmm”); val q = LocalDateTime.parse(“ 20200520T0200”,customFormatter)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章