gpt4 book ai didi

python - Django 无法进行日期时间比较

转载 作者:太空宇宙 更新时间:2023-11-03 16:59:30 27 4
gpt4 key购买 nike

我想比较两个日期时间。问题是我总是得到 False。例如:validation_date = 2016 年 1 月 31 日中午 12:43,actual_time = 2016 年 1 月 31 日下午 2:40给出 False,validation_date = 2016 年 2 月 12 日下午 4:11,actual_time = 2016 年 1 月 31 日下午 2:40也给出 False 。谢谢

#models.py
class SomeModel(models.Model):
validity_date = models.DateTimeField()

#views.py
def SomeView(request):
model_list = SomeModel.objects.all()
actual_time = datetime.datetime.now()
context = {
'model_list': model_list,
'actual_time': actual_time,
}
return render(request, 'app/sometemplate.html', context)

#in template
{% if model_list %}
{% for somemodel in model_list %}
{% if somemodel.validity_date >= actual_time %}
<td>True</td>
{% else %}
<td>False</td>
{% endif %}
{% endfor %}
{% endif %}

最佳答案

您可能正在与时区感知的日期时间进行比较。使用django.utils.timezone.now()而不是datetime.datetime.now()

>>> import django, datetime

>>> django.utils.timezone.now()
datetime.datetime(2016, 1, 31, 15, 6, 35, 471795, tzinfo=<UTC>)

>>> datetime.datetime.now()
datetime.datetime(2016, 1, 31, 16, 6, 43, 377016)

>>> datetime.datetime.now() > django.utils.timezone.now()
TypeError: can't compare offset-naive and offset-aware datetimes

关于python - Django 无法进行日期时间比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35115098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com