在 Scala 中将时间字符串转换为 timestamp/date 时间

Convert time string into timestamp/date time in scala

我正在将时间数据作为格式为 (HHMMSSHS) 的 csv 文件接收到我的源中。我不确定格式中的 HS 代表什么。示例数据将类似于 15110708.

我正在使用接收到的列和数据在数据块 table 中创建 table。我想在 Scala 中处理时将此字段转换为时间。 我正在使用 UDF 随时随地对任何数据进行格式化。但是为此,我在编写仅用于解析时间的 UDF 时完全陷入困境。

最终输出应该是 15:11:07:08 或此字符串的任何时间格式 suitable。

我尝试使用 java.text.SimpleDateFormat 并遇到无法解析字符串的问题。

有什么方法可以将上面给定的字符串转换为时间格式吗?

我将此值作为列存储在 databricks notebook table 中。有没有除了字符串以外的其他格式只保存时间值?

你试过了吗?:

import java.time.LocalTime

val dtf : DateTimeFormatter = DateTimeFormatter.ofPattern("HHmmssSS")
  
val localTime = udf { str : String =>
  LocalTime.parse(str, dtf).toString
}

给出:

+---------+------------+
|Timestamp|converted   |
+---------+------------+
|15110708 |15:11:07.080|
|15110708 |15:11:07.080|
+---------+------------+