我试图从一个列表中得到两个日期(字符串)‘开始日期’和‘结束日期’之间的年份差异,但我注意到日期列表的格式不正确。在尝试转换成相同的格式后,输出一直将年份更改为2021年,这是错误的。这是我的代码和输出
start_date= ['18-Aug', '12-Aug', 'Nov-19', 'Oct-17', '19-Apr', 'Mar-15', '12-Jul', 'Jul-15', '13-May', '13-Oct']
for i in range(len(start_date)):
print(dateutil.parser.parse(start_date[i]).strftime("%y-%b"))输出:
21-Aug
21-Aug
21-Nov
21-Oct
21-Apr
21-Mar
21-Jul
21-Jul
21-May
21-Oct预期产出应是:
18-08
12-08
19-11
17-10
19-04
15-03
12-07
15-07
13-05
13-10发布于 2021-10-31 08:40:10
您使用了错误的格式,%y-%b作为输出。另外,您不需要使用dateutil库。您可以通过使用标准的datetime库来完成它,如this answer所示。
from datetime import datetime
def try_parsing_date(text):
for fmt in ('%b-%d', '%d-%b'):
try:
return datetime.strptime(text, fmt)
except ValueError:
pass
raise ValueError('no valid date format found')
start_date = ['18-Aug', '12-Aug', 'Nov-19', 'Oct-17', '19-Apr', 'Mar-15', '12-Jul', 'Jul-15', '13-May', '13-Oct']
for text in start_date:
print(try_parsing_date(text).strftime("%d-%m"))输出:
18-08
12-08
19-11
17-10
19-04
15-03
12-07
15-07
13-05
13-10https://stackoverflow.com/questions/69785080
复制相似问题