2 回答

TA贡献1815条经验 获得超10个赞
第一个片段中的错误是因为你做了from datetime import datetime
而不是import datetime
之前做datetime.date
.
另请注意, to 的参数datetime.date
是 ordered (year, month, day)
。

TA贡献1775条经验 获得超11个赞
这是一种解析日期并将它们放入列表的方法。
拆分中的正则表达式''\s|(?<=\d{4})(?=\d)'表示在四个连续数字(后跟一个数字)之后在空格或空格上拆分。这样,年份将与月份的以下数字分开。这些是正则表达式中的后视和前瞻结构。
import re
from datetime import date
s = '6 6 19707 7 20013 15 19741 7 19772 17 1983'
dates = re.split(r'\s|(?<=\d{4})(?=\d)', s)
# get length less last 3
i = len(dates) - 3
j = 0
final_date = []
while j <= i:
m, d, yr = dates[j:j+3]
final_date.append(date(int(yr), int(m), int(d)))
j += 3
for d in final_date:
print(d)
输出:
1970-06-06
2001-07-07
1974-03-15
1977-01-07
1983-02-17
添加回答
举报