我正在尝试比较从日期类型HTML输入元素收到的日期和当前日期。
这是我的Python代码。
deadline = request.POST.get('deadline', '')
today = datetime.date.today().strftime("%B %d, %Y")
print type(deadline)
print type(today)
if deadline > today:
task_obj = Task(user=request.user, name=name, deadline=deadline)
task_obj.save()
return HttpResponseRedirect(reverse('tasks'))
else:
return HttpResponse('Deadline cannot be before current date.')
print type(deadline)
输出<type 'unicode'>
,print type(today)
输出<type 'str'>
。我如何在Python中比较这两个?
答案 0 :(得分:3)
在Python 2中,如果unicode字符串不包含任何其他ASCII码点,您可以直接比较它们:
if deadline == today:
并且Python将隐式编码unicode字符串。由于你的日期不是ISO8601格式,你不能做任何事情,只能通过这种方式测试平等;您无法测试一个是大于还是小于另一个,因为您通过词典排序顺序来比较字符串!
您确实需要将HTML unicode值解析为datetime
对象并进行比较:
today = datetime.date.today()
deadline = datetime.datetime.strptime(deadline, "%B %d, %Y").date()
if deadline > today:
现在您要比较datetime.date()
个对象,它们实际上允许您按日期测试相对排序。
答案 1 :(得分:0)
您可以使用:
if deadline==today:
...