我尝试使用比较运算符将当前日期和时间与模型中指定的日期和时间进行比较:
if challenge.datetime_start <= datetime.now() <= challenge.datetime_end:
脚本错误输出为:
TypeError: can't compare offset-naive and offset-aware datetimes
模型如下所示:
class Fundraising_Challenge(models.Model):
name = models.CharField(max_length=100)
datetime_start = models.DateTimeField()
datetime_end = models.DateTimeField()
我也有使用地区日期和时间的django。
我找不到的是django用于DateTimeField()的格式。它是天真的还是有意识的?如何让datetime.now()识别区域设置日期时间?
发布于 2013-03-10 08:44:58
因此,我要解决这个问题的方法是确保两个日期时间位于正确的时区。
我可以看到您正在使用datetime.now()
,它将返回系统当前时间,但没有设置tzinfo。
tzinfo是附加到datetime的信息,以便让它知道它所在的时区。如果你使用的是朴素的datetime,你需要在整个系统中保持一致。我强烈建议只使用datetime.utcnow()
考虑到您正在创建与tzinfo关联的datetime,您需要做的是确保它们被本地化(与tzinfo关联)到正确的时区。
看看Delorean,它使处理这类事情变得容易得多。
https://stackoverflow.com/questions/15307623
复制相似问题