Python 将两个日期作为字符串进行比较
我需要用python在每一行数据上比较服务器中的两个日期。在本例中,我使用了Python 将两个日期作为字符串进行比较,python,datetime,Python,Datetime,我需要用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
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
>>>
>>“2016-07-28T06:04:12.000000Z”<“2016-04-28T06:04:13.000000Z”
假的
>>>“2016-07-28T06:04:12.000000Z”<“2016-07-28T06:04:13.000000Z”
真的
>>>
>>>“2016-07-28T06:04:12.000000Z”<“2016-07-28T06:04:11.000000Z”
假的
>>>“2016-07-28T06:04:12.000000Z”<“2016-07-28T06:04:12.000000Z”
假的
>>>“2016-07-28T06:04:12.000000Z”<“2016-07-28T07:04:12.000000Z”
真的
>>>“2016-07-28T06:04:12.000000Z”<“2016-07-28T06:04:12.000000Z”
假的
>>>
>>>“2016-07-28T06:04:12.000000Z”<“2016-07-26T06:04:12.000000Z”
假的
>>>“2016-07-28T06:04:12.000000Z”<“2016-07-29T06:04:12.000000Z”
真的
>>>“2016-07-28T06:04:12.000000Z”<“2016-07-28T06:04:12.000000Z”
假的
>>>
这是比较日期的好方法吗。我的意思是,你能给我举个例子,说明这段代码不起作用吗?是的-用Python解析日期非常慢,因为日期和时间都很复杂。根据stackoverflow线程的说法,正则表达式的解析速度可能更快 如果您真的需要解析字符串,我会再次考虑,因为看起来您的数据是干净的,并且在您的案例中具有相同的格式,这可能会起作用 在使用此方法之前,请记住以下事项:
- 你知道你的字符串的格式吗
- 它真的是从年>月>日>小时>分钟>秒>等等开始的吗
- 您的所有数据是否具有相同的格式
- 您的所有数据都在同一时区
datetime
对象不应该成为性能瓶颈。您确定这是问题的原因吗?@DeepSpace但如果日期的格式都相同,不是吗?@DeepSpace:因此一个明显不起作用的示例不会有零填充。您能指出strtime
什么时候会这样做吗?如果时间都已经本地化,并且都看起来与您显示的完全一样(都有前导零,没有时区偏移等),那么比较字符串将与比较通过解析这些字符串创建的两个datetimes
相同。