在python中比较unicode类型和str类型日期

在python中比较unicode类型和str类型日期,python,datetime,Python,Datetime,我试图比较从日期类型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=requ

我试图比较从日期类型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.')
打印类型(截止日期)
输出
,而
打印类型(今天)
输出
。如何在Python中比较这两种语言?

您可以使用:

if deadline==today:
    ...
您可以使用以下选项:

if deadline==today:
    ...
您可以使用以下选项:

if deadline==today:
    ...
您可以使用以下选项:

if deadline==today:
    ...

在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()
对象,它实际上让您可以按日期测试相对顺序。

在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()
对象,它实际上让您可以按日期测试相对顺序。

在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()
对象,它实际上让您可以按日期测试相对顺序。

在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()
对象,它实际上可以让您按日期测试相对顺序。

这会产生错误
键入对象“datetime.date”没有属性“strtime”
@YinYang:crumbs,我一直忘了
date
没有这样的方法。更正。我有罪!现在我发现错误
时间数据'2014-03-31'与格式'%B%d,%Y'不匹配。
@YinYang:你为什么不告诉我们你的HTML日期当时是什么格式?为什么您今天尝试将
格式化为完全不同的格式?@YinYang:使用
%Y-%m-%d
解析ISO格式的日期。这会导致错误
键入对象“datetime.date”没有属性“strtime”
@YinYang:crumbs,我一直忘了
date
没有这样的方法。更正。我有罪!现在我发现错误
时间数据'2014-03-31'与格式'%B%d,%Y'不匹配。
@YinYang:你为什么不告诉我们你的HTML日期当时是什么格式?为什么您今天尝试将
格式化为完全不同的格式?@YinYang:使用
%Y-%m-%d
解析ISO格式的日期。这会导致错误
键入对象“datetime.date”没有属性“strtime”
@YinYang:crumbs,我一直忘了
date
没有这样的方法。更正。我有罪!现在我发现错误
时间数据'2014-03-31'与格式'%B%d,%Y'不匹配。
@YinYang:你为什么不告诉我们你的HTML日期当时是什么格式?为什么您今天尝试将
格式化为完全不同的格式?@YinYang:使用
%Y-%m-%d
解析ISO格式的日期。这会导致错误
键入对象“datetime.date”没有属性“strtime”
@YinYang:crumbs,我一直忘了
date
没有这样的方法。更正。我有罪!现在我发现错误
时间数据'2014-03-31'与格式'%B%d,%Y'不匹配。
@YinYang:你为什么不告诉我们你的HTML日期当时是什么格式?为什么您今天要尝试将
格式化为完全不同的格式?@YinYang:使用
%Y-%m-%d
解析ISO格式的日期。仅供参考
'2014年1月1日'
!FYI
“2014年1月1日”
“2014年8月1日”
为“假”
!FYI
“2014年1月1日”
“2014年8月1日”
为“假”
!FYI
“2014年1月1日”
“2014年8月1日”为“假”!