首页 > 解决方案 > 如何让所有日期到某个日期?

问题描述

例如,我在 python 中有一个日期列表

dates = ["01/03/2010", "02/11/2010", "05/12/2010", "21/12/2010"]

dd/mm/yyyy格式。然后我有一个截止日期"30/11/2010",所以我想要"30/11/2010"从日期开始的所有日期,所以输出将是

["01/03/2010", "02/11/2010"]

我曾尝试搜索类似的问题,但它们似乎都在迭代日期范围。有什么办法可以在 Python 中完成吗?

标签: pythondate

解决方案


如果您对日期做任何事情而不是立即再次打印它们,您可能希望将它们转换为date对象。

import datetime as dt

dates = ["01/03/2010", "02/11/2010", "05/12/2010", "21/12/2010"]
parsed_dates = [dt.datetime.strptime(d, "%d/%m/%Y").date() for d in dates]
filtered_dates = [d for d in parsed_dates if d <= dt.date(2010, 11, 30)]
output_dates = [d.strftime("%d/%m/%Y") for d in filtered_dates]
print(", ".join(output_dates))

推荐阅读