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

对接Oracle PMS时的Python日期解析问题

解析Oracle PMS日期字符串的Python方案

针对你遇到的GA090616/GD090617这类日期格式,核心是处理无分隔符的6位MMDDYY(月-日-年)字符串,以下是可行的解析方案:

基础单日期解析

先处理单个6位日期字符串(比如090616),使用datetime.strptime指定对应格式符即可:

from datetime import datetime

# 6位日期字符串(MMDDYY格式)
raw_date = "090616"
# 解析为date对象:%m=两位月份,%d=两位日期,%y=两位年份
date_obj = datetime.strptime(raw_date, "%m%d%y").date()
# 格式化为你需要的"MM-DD-YY"样式
formatted_date = date_obj.strftime("%m-%d-%y")

print(formatted_date)  # 输出: 09-06-16

批量提取PMS消息中的日期

如果需要从完整的PMS消息(比如|GA090616|GD090617|)中自动提取所有GA/GD对应的日期,可以结合正则表达式:

from datetime import datetime
import re

pms_message = "|GA090616|GD090617|"
# 匹配GA或GD开头的6位日期数字
date_pattern = re.compile(r'G[AD](\d{6})')
matches = date_pattern.findall(pms_message)

# 批量解析并格式化
for raw_date in matches:
    date_obj = datetime.strptime(raw_date, "%m%d%y").date()
    print(date_obj.strftime("%m-%d-%y"))

# 输出结果:
# 09-06-16
# 09-06-17

关键说明

  • 你之前的方案失败原因是使用了带分隔符的%d/%m/%y格式,而当前日期字符串是无分隔符的MMDDYY顺序,必须对应使用%m%d%y格式符
  • 若后续确认日期顺序是DDMMYY(日-月-年),只需将格式符改为%d%m%y即可
  • strptime会自动将两位年份16补全为2016,如果需要处理更早的年份(比如99对应1999),可以额外补充年份逻辑

内容的提问来源于stack exchange,提问作者M.Abdullah Iqbal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 06:35:16