我试图根据给定的日期获取两个日期,昨天和明天,然后将它们传递给Django的Queryset过滤器函数:
nxtday = relativedelta(day=+1) + date
yesterday = relativedelta(day=-1) + date
events = events.filter(start_datetime__gte=yesterday, end_datetime__lte=nxtday)
这里的重点是获取您可能已经推断出的当天的事件。问题是我不断收到此错误:
ValueError: day is out of range for month
切换到timedelta对象会在dateutil的规则中引发问题:
TypeError: can't compare offset-naive and offset-aware datetimes
我喜欢dateutil模块,所以我很好奇为什么它不起作用。通过日期的示例:2014年2月26日。有任何想法吗?
最佳答案
如果为day参数传递-1,则请求该月的-1天,这就是为什么它抱怨超出范围的值。
对于相对增量,day参数用于绝对日期,而days参数用于相对日期。 docs
nxtday = relativedelta(days=1) + date
yesterday = relativedelta(days=-1) + date
关于python - python dateutil relativedelta值超出范围错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21993872/