django 集成到Oracle PMS时出现日期解析问题

jtjikinw  于 2023-02-06  发布在  Go
关注(0)|答案(1)|浏览(91)

我收到PMS消息中的日期,类似于|GA090616|GD090617|,表示客人到达时间为2016年9月6日,客人离开时间为2017年9月6日
我想用python把它解析为date。
我还访问了堆栈溢出[ 12... ],但我找到了解决方案

from datetime import datetime

self.DATE_FROMAT='%d/%m/%y'

arrival_date=datetime.strptime('90616', self.DATE_FROMAT).date()
print(arrival_date)

而且由于格式不清楚,不可能像这样解析它。我不确定09是月份还是日期,但从我在文档和PDF中看到的情况来看,它似乎是月份。
对于这种日期解析,有没有更好的解决方案?或者对我的期望有什么建议。

09-06-16,
09-06-17

注意:请从字符串090617中提取日期并将其解析为日期,这将很有帮助。

fwzugrvs

fwzugrvs1#

您可以使用正则表达式匹配来完成此操作,也可以使用msg.split(“|“)或不是,但这取决于您的用例。

import re
from datetime import datetime

msg = "GA090616|GD090617|"
DATE_FORMAT='%d%m%y'

ar = re.match("GA(\d{6})", msg)
dp = re.match("GD(\d{6})", msg)

guest_arrival = datetime.strptime(ar.group(1), DATE_FORMAT).date()
guest_departure = datetime.strptime(dp.group(1), DATE_FORMAT).date()

虽然没有经过全面测试,但这应该是如何从消息中检索日期的样板文件。记住从日期格式中删除\,因为消息中不包含它。

相关问题