Python将日期时间与具有相同格式的str进行比较

时间:2016-06-23 16:06:08

标签: python datetime

我得到了这两个值来比较

第一个来自具有str格式的API,第二个来自函数datetime.datetime.now()

2016-06-23 11:05:42.0
<class 'str'>

2016-06-23 18:00:03.063287
<class 'datetime.datetime'>

我在比较它们时遇到了问题

    if datetime.datetime.strftime(C[5],'%Y-%m-%d %H:%M:%S.%f') <= now:
        AA.append(C)

但它会引发以下错误

  

TypeError:描述符&#39; strftime&#39;需要一个&datetime.date&#39;对象但是   收到了一个&#39;

1 个答案:

答案 0 :(得分:1)

您将使用`strptime并将字符串解析为日期时间对象:

In [27]: s = "2016-06-23 11:05:42.0"

In [28]: datetime.datetime.strptime(s,'%Y-%m-%d %H:%M:%S.%f')
Out[28]: datetime.datetime(2016, 6, 23, 11, 5, 42)

但你实际上并不需要使用strptime,因为字符串可以安全地按字典顺序进行比较,所以你可以调用str(现在):

In [23]: "2016-06-23 11:05:42.0" < str(datetime.datetime.now())
Out[23]: True
In [24]: "2016-06-23 17:12:42.0" < str(datetime.datetime.now())
Out[24]: False