将时间格式"dd/MM/yyyy hh:mm:ss"转换为"yyyy-MM-ddThh:mm:ss.SSSz"



我是scala的新手。如何转换日期格式?

原字符串为:14/5/2020 12:57:09我需要转换为:2020-5-14T12:57:09.000z

你可以使用to_timestamp,关于为什么使用timePolicy = LEGACY的信息-这里

数据准备

sql.sql("set spark.sql.legacy.timeParserPolicy=LEGACY")
sparkDF = sql.createDataFrame([
("14/5/2020 12:57:09",)
,("16/12/2020 05:57:09",)
,("28/2/2020 22:45:10",)
]
, ['timestamp_str'])
sparkDF.show()
+-------------------+
|      timestamp_str|
+-------------------+
| 14/5/2020 12:57:09|
|16/12/2020 05:57:09|
| 28/2/2020 22:45:10|
+-------------------+
root
|-- timestamp_str: string (nullable = true)

转换
+-------------------+-------------------+
|      timestamp_str|     timestamp_date|
+-------------------+-------------------+
| 14/5/2020 12:57:09|2020-05-14 12:57:09|
|16/12/2020 05:57:09|2020-12-16 05:57:09|
| 28/2/2020 22:45:10|2020-02-28 22:45:10|
+-------------------+-------------------+
root
|-- timestamp_str: string (nullable = true)
|-- timestamp_date: timestamp (nullable = true)
Seq("14/5/2020 12:57:09").toDF("time_str")
.withColumn(
"time_formatted", 
date_format(
to_timestamp('time_str, "dd/MM/yyyy HH:mm:ss"), 
"yyyy-MM-dd'T'HH:mm:ss.SSS'z'")
).show(false)
+------------------+------------------------+
|time_str          |time_formatted          |
+------------------+------------------------+
|14/5/2020 12:57:09|2020-05-14T12:57:09.000z|
+------------------+------------------------+

最新更新