比较Python中的两个日期字符串

时间:2013-12-04 02:44:56

标签: python date datetime

假设我有一个字符串:“10/12/13”和“10/15/13”,如何将它们转换为日期对象以便我可以比较日期?例如,查看之前或之后的日期。

7 个答案:

答案 0 :(得分:34)

使用datetime.datetime.strptime

>>> from datetime import datetime as dt
>>> a = dt.strptime("10/12/13", "%m/%d/%y")
>>> b = dt.strptime("10/15/13", "%m/%d/%y")
>>> a > b
False
>>> a < b
True
>>>

答案 1 :(得分:9)

如果您想使用dateutil及其解析器:

from dateutil.parser import parse

date1 = parse('10/12/13')
date2 = parse('10/15/13')

print date1 - date2
print date2 > date2

答案 2 :(得分:9)

以下是使用datetime.datetime.strptime的一个解决方案:

>>> date1 = datetime.datetime.strptime('10/12/13', '%m/%d/%y')
>>> date2 = datetime.datetime.strptime('10/15/13', '%m/%d/%y')
>>> date1 < date2
True
>>> date1 > date2
False

答案 3 :(得分:2)

使用datetime.datetime.strptime

from datetime import datetime

a = datetime.strptime('10/12/13', '%m/%d/%y')
b = datetime.strptime('10/15/13', '%m/%d/%y')

print 'a' if a > b else 'b' if b > a else 'tie'

答案 4 :(得分:0)

import datetime

d1="10/12/13"
d2="10/15/13"
date = d1.split('/')
d1=datetime.datetime(int(date[2]),int(date[1]),int(date[0])) 
date = d2.split('/')
d2=datetime.datetime(int(date[2]),int(date[1]),int(date[0]))
if d1 > d2 :
    ## Code
today = datetime.datetime.today()
if d1 > today :
    ## code

答案 5 :(得分:0)

最简单的方法是使用熊猫

import pandas as pd
d1=pd.to_datetime("10/12/13")
d2=pd.to_datetime("10/12/15")

d1>d2

>>False

答案 6 :(得分:0)

我知道这篇文章已经有 7 年的历史了,但我想说的是,您可以比较两个日期字符串而无需将它们转换为日期

>>> "10/12/13" > "10/15/13"
False
>>> "10/12/13" < "10/15/13"
True
>>> "10/12/13" == "10/15/13"
False

如果这种方法有什么问题,我希望有人告诉我。