将字符串转换为时间戳

问题描述

我想将字符串转换为时间戳。我面临的问题是字符串显示月份的第一个三个字母,而不是月份数字

例如31-JAN-20 12.03.48.759214 AM

有没有什么聪明的方法可以将价值转化为喜欢?

2020-01-31T12:03:48.000+0000

谢谢

解决方法

使用 to_timestamp 将字符串转换为时间戳类型,然后使用 format_date 获得所需的模式:

from pyspark.sql import functions as F

df = spark.createDataFrame([("31-JAN-20 12.03.48.759214 AM",)],["date"])

df.withColumn(
    "date2",F.date_format(
        F.to_timestamp("date","dd-MMM-yy h.mm.ss.SSSSSS a"),"yyyy-MM-dd'T'HH:mm:ss.SSS Z"
    )
).show(truncate=False)

#+----------------------------+-----------------------------+
#|date                        |date2                        |
#+----------------------------+-----------------------------+
#|31-JAN-20 12.03.48.759214 AM|2020-01-31T00:03:48.759 +0100|
#+----------------------------+-----------------------------+

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...