【问题标题】:dateutil.rrule.rrule.between() gives only dates after nowdateutil.rrule.rrule.between() 只给出现在之后的日期
【发布时间】:2009-03-06 13:48:08
【问题描述】:

从 IPython 控制台:

In [16]: b
Out[16]: datetime.datetime(2008, 3, 1, 0, 0)

In [17]: e
Out[17]: datetime.datetime(2010, 5, 2, 0, 0)

In [18]: rrule(MONTHLY).between(b, e, inc=True)
Out[18]:
[datetime.datetime(2009, 3, 6, 14, 42, 1),
 datetime.datetime(2009, 4, 6, 14, 42, 1),
 datetime.datetime(2009, 5, 6, 14, 42, 1),
 datetime.datetime(2009, 6, 6, 14, 42, 1),
 datetime.datetime(2009, 7, 6, 14, 42, 1),
 datetime.datetime(2009, 8, 6, 14, 42, 1),
 datetime.datetime(2009, 9, 6, 14, 42, 1),
 datetime.datetime(2009, 10, 6, 14, 42, 1),
 datetime.datetime(2009, 11, 6, 14, 42, 1),
 datetime.datetime(2009, 12, 6, 14, 42, 1),
 datetime.datetime(2010, 1, 6, 14, 42, 1),
 datetime.datetime(2010, 2, 6, 14, 42, 1),
 datetime.datetime(2010, 3, 6, 14, 42, 1),
 datetime.datetime(2010, 4, 6, 14, 42, 1)]

如何使between() 返回日期从开始 (b) 日期开始?

【问题讨论】:

    标签: python python-dateutil rrule


    【解决方案1】:

    您需要将b 传递给rrule,如下所示:

    rrule(MONTHLY, dtstart = b).between(b, e, inc=True)
    

    从这些文档 (http://labix.org/python-dateutil) 看来,在不指定 dtstart 的情况下调用 rrule 将使用 datetime.datetime.now() 作为您稍后应用 between 的序列的起点。这就是为什么您的价值观始于 2009-03-06。

    【讨论】:

      猜你喜欢
      • 2013-02-01
      • 2011-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多