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

PySpark如何将年月参数转换为当月最后一个工作日并去除时间

问题修复方案

现有代码问题点

  • 变量命名冲突:自定义变量date覆盖了导入的datetime.date类,会导致后续调用日期方法异常
  • 缺少合法的日期类型转换逻辑:202109是整型年月值,不存在直接可用的date_format方法完成日期对象转换
  • 结果默认带时间戳,需要额外调用方法剥离时间部分

修复后完整代码

from pandas.tseries.offsets import BMonthEnd
from datetime import datetime

# 输入的年月参数
year_month = 202109
# 1. 整型转字符串后解析为当月1号的datetime对象
d = datetime.strptime(str(year_month), '%Y%m')
# 2. 计算当月最后一个工作日
offset = BMonthEnd()
last_working_day = offset.rollforward(d)
# 3. 仅保留日期部分,去除时间
only_date = last_working_day.date()

print(only_date)

关键逻辑说明

  • 年月转日期:先将整型202109转为字符串,通过datetime.strptime配合%Y%m格式符,直接解析为当月1号的datetime对象,无需手动拼接日期
  • 剥离时间部分:datetime对象调用.date()方法即可得到仅含年/月/日的date类型结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 19:39:01