在python中生成间隔为一年的日期,月和日保持不变

  • 本文关键字:日期 一年 python python
  • 更新时间 :
  • 英文 :


我在列表U中存储了一些日期,我想为1981年至2018年的每个日期生成一个日期序列,月份和日期不变。我使用了dateutil库中的relativelta((命令。

from dateutil.relativedelta import relativedelta
import datetime

U=[datetime.date(2013,6,5),datetime.date(2014,7,8),datetime.date(2012,12,5)]
U[0]+relativedelta(years=1) 

但是relativedelta(years=1)将只获取datetime.date(2014,6,5),如何为U 中的所有三个不同日期生成datetime.date(1981,Month,Day)datetime.date(1982,Month,Day)等日期,直到datetime.date(2018,Month,Day)

您可以通过使用列表理解来保持简单。如果说,你想要1980年和1980年之间的所有1月1日;2019年:

[datetime.datetime(year, 1, 1) for year in range(1980,2020)]

(例如,如果需要10月30日,请将11更改为1030

感谢Zabop提供的解决方案。我想生成所有三个日期的序列,这是代码:

import numpy as np
import datetime
U=[datetime.date(2013,6,5),datetime.date(2014,7,8),datetime.date(2012,12,5)]
x=list()
for i in np.arange(0,3,1):
X1=[datetime.datetime(year, U[i].month, U[i].day) for year in range(1980,2020)]
x.append(X1) 

最新更新