Spark 将字符串解析为带时区的时间戳

Geo*_*ler 4 timezone timestamp timezone-offset apache-spark apache-spark-sql

我有一个像这样的字符串:

2018-03-21T08:15:00+01:00
Run Code Online (Sandbox Code Playgroud)

并想知道在 Spark 中解析时如何保留时区/从 UTC 偏移。

Seq("2018-03-21T08:15:00+01:00").toDF.select('value, to_timestamp('value, "yyy-MM-ddTHH:mm:ss")).show(false)
Run Code Online (Sandbox Code Playgroud)

不幸的是只产生null. 即使我省略了移位的格式字符串也只返回null.

hi-*_*zir 6

T 不是格式说明符,因此应该对其进行转义:

"yyyy-MM-dd'T'HH:mm:ss"
Run Code Online (Sandbox Code Playgroud)

时区表示为 X

"yyy-MM-dd'T'HH:mm:ssXXX"
Run Code Online (Sandbox Code Playgroud)