You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中将03MAR23格式日期转换为yyyy-mm-dd格式

在PySpark中将"DDMMMYY"格式日期转换为"yyyy-mm-dd"格式

要把03MAR23、03FEB23这类格式的日期字符串转成yyyy-mm-dd,需要分两步处理:先将字符串解析为日期类型,再格式化为目标字符串格式,具体实现如下:

核心思路

  1. 使用to_date()函数将输入的日期字符串按ddMMMyy格式解析为Spark日期类型
  2. 使用date_format()函数将日期类型转换为yyyy-MM-dd格式的字符串

示例代码

from pyspark.sql.functions import to_date, date_format, col

# 创建测试DataFrame
df = spark.createDataFrame([["1", "03MAR23"], ["2", "03FEB23"]], ["id", "raw_date"])

# 转换并展示结果
df.select(
    col("id"),
    col("raw_date"),
    to_date(col("raw_date"), "ddMMMyy").alias("date_type"),
    date_format(to_date(col("raw_date"), "ddMMMyy"), "yyyy-MM-dd").alias("formatted_date")
).show()

代码说明

  • to_date(col("raw_date"), "ddMMMyy"):dd匹配两位日,MMM匹配三位英文月份缩写(如MAR、FEB),yy匹配两位年份,将字符串转为日期类型
  • date_format(..., "yyyy-MM-dd"):把日期类型数据格式化为年-月-日的字符串格式

注意事项

如果直接用date_format()处理字符串(像你提供的参考代码那样),会无法正确解析,因为date_format()的第一个参数需要是日期/时间类型,而非原始字符串。

内容的提问来源于stack exchange,提问作者Data_Insight

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 19:52:14