我有DateTimeField
:
class Assignment (models.Model):
official_deadline = models.DateTimeField(null=True, blank=True)
我需要将它与当前日期时间进行比较,我尝试过:
def official_deadline_past(self):
if datetime.datetime.today() > self.official_deadline:
return True
return False
但它始终返回False
我也尝试过:
def official_deadline_past(self):
if datetime.datetime.now() > self.official_deadline:
return True
return False
但我有同样的问题。
我在字段中有一个信息:2011-07-02 00:00:00
例如以ModelForm
生成的格式
答案 0 :(得分:0)
我在python 2.7.3和django 1.3.1下比较DateTimeField与datetime有类似的问题
我认为DateTimeField当时没有很好的时区支持,或者我没有正确配置它。
每当我为datetime字段指定时区时,我对DateTimeField>的所有比较都是如此。日期时间会失败。
datetime使用本地中心时间,而DateTimeField输入为east。
我最后只是将一个愚蠢的黑客加入到日期时间中心对象中添加timedelta(hours = 1)以将其“转换”为东部。
答案 1 :(得分:0)
我有同样的问题,Django模型的Datetime字段只包含日期(没有时间)
now = datetime.datetime.now()
q1=Q()
q1.children.append(Q(datetimefieldFrom__lte=now))
q1.children.append(Q(datetimefieldTo__gte=now))
例如 现在:“ 2020-12-11 17:17:58.000000” datetimeFrom:“ 2020-12-11 16:17:58.000000” datetimeFrom:“ 2020-12-11 18:17:58.000000”
它只是通过“ 2020-12-11 00:00:00.000000”进行比较
@johnjamesmiller,您的时区问题可以通过修改设置来解决。py
TIME_ZONE = 'Asia/Hong_Kong'
USE_TZ = True