在 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|
+---------+------------+
我正在将时间数据作为格式为 (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|
+---------+------------+