我需要在每行数据上比较服务器中的两个日期和python。在这种情况下我使用datetime
但由于某些限制,它会在大数据上消耗大量时间。我使用下面的代码创建了一个datetime
对象并进一步使用:
first_date = datetime.strptime(line_content[3], '%Y-%m-%dT%H:%M:%S.000000Z')
second_date = datetime.strptime(line_content[4].strip(), '%Y-%m-%dT%H:%M:%S.000000Z')
我想比较日期和字符串,不要使用datetime
,如果我这样做,这些数据会有很多时间成本降低。所以在python中使用以下测试:
>>> "2016-07-28T06:04:12.000000Z" < "2016-04-28T06:04:13.000000Z"
False
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:13.000000Z"
True
>>>
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:11.000000Z"
False
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:12.000000Z"
False
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T07:04:12.000000Z"
True
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:12.000000Z"
False
>>>
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-26T06:04:12.000000Z"
False
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-29T06:04:12.000000Z"
True
>>> "2016-07-28T06:04:12.000000Z" < "2016-07-28T06:04:12.000000Z"
False
>>>
这是比较日期的好方法吗?我的意思是你能告诉我一个例子,这段代码不起作用吗?
答案 0 :(得分:4)
是的 - 使用Python解析日期非常慢,因为日期和时间是complex things。根据{{3}} stackoverflow线程,正则表达式可能更快解析。
如果您确实需要解析字符串,我会再次考虑,因为看起来您的数据很干净并且在您的情况下可能有相同的格式。
在采用这种方法之前要记住的事情: