【问题标题】:Generating dates with an interval of one year with month and day being constant in python生成间隔为一年的日期,月份和日期在python中是恒定的
【发布时间】:2020-09-19 18:22:04
【问题描述】:

我有几个日期存储在列表 U 中,我想为从 1981 年到 2018 年的每个日期生成一系列日期,月份和日期保持不变。我使用了 dateutil 库中的 relativedelta() 命令。

    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)

【问题讨论】:

    标签: python


    【解决方案1】:

    您可以通过使用列表推导来保持简单。如果假设您想要 1980 年至 2019 年之间的所有一月一日:

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

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

    【讨论】:

      【解决方案2】:

      感谢 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) 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-27
        • 1970-01-01
        • 1970-01-01
        • 2018-12-24
        • 1970-01-01
        • 1970-01-01
        • 2017-01-19
        相关资源
        最近更新 更多