You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Python中提取指定格式日期并转换为yyyy-mm-dd格式

Python日期处理:提取与格式转换方案

Got it, let's break down these two common date handling tasks in Python clearly:

1. 从指定格式字符串中提取日期

要处理像 "Tue May 15 2018 00:00:00 GMT-0400 (EDT)" 这样的字符串,我们可以用Python内置的datetime模块,通过strptime()方法解析字符串为datetime对象,再提取日期部分。

步骤代码:

from datetime import datetime

# 输入的日期字符串
date_str = "Tue May 15 2018 00:00:00 GMT-0400 (EDT)"

# 定义匹配字符串的格式符
format_pattern = "%a %b %d %Y %H:%M:%S GMT%z (%Z)"

# 解析字符串为datetime对象
dt_obj = datetime.strptime(date_str, format_pattern)

# 提取日期部分(得到date对象)
date_part = dt_obj.date()

print("提取的日期对象:", date_part)

格式符说明:

  • %a:星期缩写(如Tue)
  • %b:月份缩写(如May)
  • %d:日(两位数字)
  • %Y:四位年份
  • %H:%M:%S:时:分:秒
  • GMT%z:时区偏移(如GMT-0400)
  • (%Z):时区名称(如(EDT))

2. 将日期转换为yyyy-mm-dd格式

有两种简单的方式实现这个转换:

方式一:用strftime()格式化

直接对datetime对象或date对象调用strftime()方法,指定目标格式:

# 从datetime对象转换
formatted_date = dt_obj.strftime("%Y-%m-%d")

# 或者从提取的date对象转换
formatted_date = date_part.strftime("%Y-%m-%d")

print("转换后的日期:", formatted_date)  # 输出:2018-05-15

方式二:直接转换为字符串

因为Python的date对象默认的字符串表示就是yyyy-mm-dd格式,所以可以直接转成字符串:

formatted_date = str(date_part)
print("转换后的日期:", formatted_date)  # 同样输出:2018-05-15

完整整合代码

如果要一步完成提取+转换,可以这样写:

from datetime import datetime

date_str = "Tue May 15 2018 00:00:00 GMT-0400 (EDT)"
format_pattern = "%a %b %d %Y %H:%M:%S GMT%z (%Z)"

# 一步到位:解析→提取日期→格式化
formatted_date = datetime.strptime(date_str, format_pattern).date().strftime("%Y-%m-%d")

print("最终结果:", formatted_date)  # 2018-05-15

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

火山引擎 最新活动