gpt4 book ai didi

迄今为止 ISO 8601 的 python 字符串

转载 作者:行者123 更新时间:2023-12-01 05:21:12 26 4
gpt4 key购买 nike

我正在从旧系统转换许多晦涩的日期格式。日期作为字符串解包/处理并转换为 ISO 8601 格式。

这个特定的函数尝试将 YYMMDD0F 转换为 YYYYMMDD ——函数名称说明了一切。从 2000 年开始的日期让事情变得困惑,显然这不是处理它们的最 Pythonic 方式。如何使用 dateutil.parser 做得更好?

def YYMMDD0FtoYYYYMMDD(date):
YY = date[0:2]
MM = date[2:4]
DD = date[4:6]
if int(YY) >= 78:
YYYY = '19%s' % YY
elif 0 <= int(YY) <= 77 and MM!='' and MM!='00':
YYYY = '20%s' % YY
else:
YYYY = '00%s' % YY
return "%s-%s-%s" % (YYYY, MM, DD)

最佳答案

您可能想查看datetime 模块。使用其日期格式化功能,您可以执行以下操作:

>>> import datetime as dt
>>> ds = '0104160F'
>>> parsed = dt.datetime.strptime(ds, "%y%m%d0F")
>>> parsed
datetime.datetime(2001, 4, 16, 0, 0)
>>> reformatted = dt.datetime.strftime(parsed, "%Y-%m-%d")
>>> reformatted
'20010416'

在您的函数中,您可以按如下方式使用它们:

def YYMMDD0FtoYYYYMMDD(date):
return dt.datetime.strftime(dt.datetime.strptime(date, "%y%m%d0F"), "%Y-%m-%d")

关于迄今为止 ISO 8601 的 python 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22328160/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com