我需要用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
>>>
这是比较日期的好方法吗。我的意思是,你能给我看一个这个代码不起作用的例子吗?
Yes-Python的日期解析非常慢,因为日期和时间是复杂的事情。根据这个stackerflow线程,regex可能会更快地进行解析。
如果您真的需要解析字符串,我会再次考虑,因为看起来您的数据是干净的,并且在您的情况下具有相同的格式,所以它可能会起作用。
在使用这种方法之前需要记住的事项:
- 你知道字符串的格式吗
- 它真的是从年>月>天>小时>分钟>秒>等等
- 你所有的数据都有相同的格式吗
- 您的所有数据都在同一时区