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

如何使用Python datetime转换不同格式的日期字符串为短日期

解决方案

可以写一个通用的日期转换函数,通过尝试匹配多种格式+异常捕获的方式处理不同的日期字符串,同时处理空日期的情况。以下是Python实现示例:

日期转换函数

from datetime import datetime

def convert_date(date_input):
    # 处理空日期字段(比如空列表、空字符串)
    if not date_input or date_input == []:
        return "NO DATE"
    
    # 定义需要匹配的两种日期格式
    target_formats = [
        "%Y-%m-%d %H:%M:%S.%f%z",
        "%Y-%m-%d %H:%M:%S%z"
    ]
    
    # 依次尝试解析日期,成功后格式化输出
    for fmt in target_formats:
        try:
            dt_obj = datetime.strptime(date_input, fmt)
            return dt_obj.strftime("%Y-%m-%d")
        except ValueError:
            continue
    
    # 若两种格式都匹配失败,返回自定义标识(可按需调整)
    return "INVALID DATE"

处理JSON数据示例

假设你读取的JSON用户数据结构如下,可按此方式批量处理日期:

import json

# 示例JSON数据
raw_user_data = '''
[
    {"user_id": 101, "register_date": "2024-01-15 08:45:30+0800"},
    {"user_id": 102, "register_date": "2024-02-20 14:20:10.678901+0000"},
    {"user_id": 103, "register_date": []},
    {"user_id": 104, "register_date": ""}
]
'''

# 解析JSON并批量转换日期
parsed_data = json.loads(raw_user_data)
for user in parsed_data:
    user["processed_date"] = convert_date(user["register_date"])

# 输出处理结果
for user in parsed_data:
    print(f"用户ID: {user['user_id']}, 原日期: {user['register_date']}, 转换后: {user['processed_date']}")

关键说明

  • 空值判断覆盖了空列表、空字符串等常见无日期场景,直接返回NO DATE
  • 无需提前判断字符串格式,通过异常捕获自动适配两种目标格式,代码更简洁健壮
  • 若遇到无法匹配的日期字符串,会返回INVALID DATE,可根据业务需求修改此逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 02:30:43