我想把一个字符串转换成时间戳。我面临的问题是字符串显示的是月份的前三个字母,而不是月份号:例如 31-JAN-20 12.03.48.759214 AM 有没有什么聪明的方法可以让你的价值变得更高?
31-JAN-20 12.03.48.759214 AM
2020-01-31T12:03:48.000+0000
谢谢
gpnt7bae1#
使用 to_timestamp 要将字符串转换为时间戳类型,请使用 format_date 要获得所需的图案:
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| # +----------------------------+-----------------------------+
1条答案
按热度按时间gpnt7bae1#
使用
to_timestamp
要将字符串转换为时间戳类型,请使用format_date
要获得所需的图案: