如何将 Python 中的 mm-dd 日期格式的“1030”转换为 10-30?

How to convert "1030" to 10-30 in mm-dd date format in Python?

有没有一种简单的方法可以将 1030、0131、1231 等数字转换为 mm-dd(或者甚至是 mm-dd-yyyy,假设一切都是 2020)格式,以便我可以用它们进行日期计算?例如,我希望能够做到 (1231 减去 0131) = 11 个月。

当然,我也可以按照下面的方法来改变格式,但看看有没有更直观的方法!

startDate = startDate[:2] + "-" + startDate[2:] + "-2020"
endDate = endDate[:2] + "-" + endDate[2:] + "-2020"

如果这不是您想要的,请告诉我:

from datetime import datetime

s = "1030"
d = '-'.join([s[:2], s[2:]]) + '-2020'
date_object = datetime.strptime(d, '%m-%d-%Y').date()

您可以稍后转换为 datetime object straight away, using strptime directive "%m%d". This allows you to make timedelta 计算。默认年份为 1900;如果你愿意,你可以在 2020 年之前更换。

from datetime import datetime

startDate, endDate = "0131", "1231"

startDate, endDate = (datetime.strptime(startDate, "%m%d").replace(year=2020), 
                      datetime.strptime(endDate,"%m%d").replace(year=2020))

deltaDays = (endDate-startDate).days
# 335